Group By的基本SQL问题(在Netezza中)

问题描述 投票:0回答:2

这听起来可能很愚蠢,但是我在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

如果我执行包含总和字段(group by)的group by id, date, daily_count子句,则会收到警告:

GROUP BY子句中不允许使用窗口式聚合

但是如果我在group by子句(group by id, date)中排除求和字段,则会收到警告:

属性count必须被分组或在聚合函数中使用

count是我要累加的变量,因此,如果我将其分组,它将不会产生正确的总金额。

这是否意味着分组必须在此查询之外进行,即cte还是子查询?我希望能得到一些建议,以了解到底发生了什么以及什么是最佳的行动方案。

sql group-by subquery common-table-expression netezza
2个回答
0
投票

您想要简单的聚合而不是窗口函数:

select id, date, sum(daily_count) daily_count
from mytable
group by id, date

0
投票

您似乎只想聚合:

select id, date, sum(count) as daily_count
from t
group by id, date;

我不确定您为什么在这里尝试使用窗口功能。

© www.soinside.com 2019 - 2024. All rights reserved.