【问题标题】:Oracle SQL: COUNT DISTINCT BY newly created variableOracle SQL:COUNT DISTINCT BY 新创建的变量
【发布时间】:2021-02-22 18:33:46
【问题描述】:

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

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

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

【问题讨论】:

  • 你说的“行不通”是什么意思? ..你有一个错误??显示错误信息。错误的结果更新您的问题添加正确的数据样本和预期的结果
  • 感谢您的提示!好的,下次我会修改我的问题。给您带来的不便深表歉意!

标签: sql oracle distinct


【解决方案1】:

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')

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 2013-01-25
    相关资源
    最近更新 更多