簡體   English   中英

Group By 的基本 SQL 問題(在 Netezza 中)

[英]Basic SQL question for Group By (in Netezza)

這聽起來可能很愚蠢,但我在 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 語句是:

select id, date, sum(count) over (partition by date, id) as daily_count

如果我group by包括 sum 字段( group by id, date, daily_count ),我會收到警告說:

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

但是,如果我在group by子句( group by id, date )中排除 sum 字段,那么我會收到警告說:

屬性count必須分組或用於聚合 function

count是我要求和的變量,所以如果我對它進行分組,它將不會產生正確的總和。

這是否意味着必須在此查詢之外進行分組,即 cte 或子查詢? 我希望得到一些建議,以了解究竟發生了什么以及最佳行動方案是什么。

您想要簡單的聚合而不是 window 函數:

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

您似乎只想要聚合:

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

我不確定您為什么要在這里嘗試使用 window function。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM