Oracle SQL: COUNT DISTINCT BY 新创建的变量

Oracle SQL: COUNT DISTINCT BY newly created variable

我想通过新创建的列 MONTH_YEAR 计算 ID 的不同条目,以便获得存储不同值 MONTH_YEAR 的 table(例如07-2020)和相应的不同计数 ID(例如 2345)。我使用了这段代码,但没有成功:

SELECT TIME, to_char(TIME, 'MM-YYYY') "MONTH_YEAR", COUNT (DISTINCT ID) "IdCount"
GROUPBY MONTH_YEAR
FROM table

我想我必须创建一个新的 table,只有上面提到的两个值,不是吗?如果是这样,我应该如何修改我的代码?

GROUP BY子句中不能使用别名,并替换FROMGROUP BY子句的顺序,如

SELECT TO_CHAR(time, 'MM-YYYY') AS month_year, COUNT (DISTINCT id) AS "IdCount"    
  FROM tab
 GROUP BY TO_CHAR(time, 'MM-YYYY')

顺便说一句,所有非聚合列都应包含在 GROUP BY 列表中。