【发布时间】:2020-04-21 21:01:42
【问题描述】:
这听起来可能很愚蠢,但我在 Netezza 中的 Group By 的 SQL 代码中遇到了问题,我似乎无法弄清楚。基本上,我正在做简单的求和并试图对结果进行分组,这就是我遇到问题的地方。当前表如下所示:
id date daily_count
---------------------------
1 4/1/20 2
1 4/2/20 1
2 4/1/20 3
2 4/1/20 2
2 4/3/20 1
我想让它看起来像:
id date daily_count
---------------------------
1 4/1/20 2
1 4/2/20 1
2 4/1/20 5
2 4/3/20 1
我的选择语句是:
select id, date, sum(count) over (partition by date, id) as daily_count
如果我执行包含 sum 字段 (group by id, date, daily_count) 的 group by 子句,我会收到警告:
GROUP BY 子句中不允许使用窗口聚合
但如果我在 group by 子句 (group by id, date) 中排除 sum 字段,则会收到警告:
属性
count必须在聚合函数中进行分组或使用
count 是我要求和的变量,所以如果我对它进行分组,它不会产生正确的总和。
这是否意味着必须在此查询之外进行分组,即 cte 或子查询?我希望得到一些建议,以了解究竟发生了什么以及最佳行动方案是什么。
【问题讨论】:
标签: sql date group-by subquery netezza