Oracle SQL:按新创建的变量计数

Oracle SQL:按新创建的变量计数,sql,oracle,distinct,Sql,Oracle,Distinct,我想通过新创建的列MONTH\u YEAR来计算ID的不同条目,以便得到一个存储不同值MONTH\u YEAR(例如07-2020)和相应的ID的不同计数(例如2345)的表。我使用了这段代码,但不起作用: SELECT TIME, to_char(TIME, 'MM-YYYY') "MONTH_YEAR", COUNT (DISTINCT ID) "IdCount" GROUPBY MONTH_YEAR FROM table 我想我必须用上面提到的两个

我想通过新创建的列
MONTH\u YEAR
来计算
ID
的不同条目,以便得到一个存储不同值
MONTH\u YEAR
(例如07-2020)和相应的
ID
的不同计数(例如2345)的表。我使用了这段代码,但不起作用:

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

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

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

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

顺便说一句,所有非聚合列都应包含在
分组依据
列表中。

分组依据
子句中不能使用别名,并替换
FROM
分组依据
子句的顺序,例如

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

顺便说一句,所有非聚合列都应包含在
分组依据列表中。

你说的“不可行”是什么意思。。你有错误吗??显示错误消息。错误结果更新您的问题添加正确的数据样本和预期结果谢谢您的提示!好的,下次我会修改我的问题。很抱歉给您带来不便!你说“不行”是什么意思。。你有错误吗??显示错误消息。错误结果更新您的问题添加正确的数据样本和预期结果谢谢您的提示!好的,下次我会修改我的问题。很抱歉给您带来不便!