[英]SQL grouping sets and roundup
我正在嘗試使用特定的匯總規則(第5列和第6列)來計算某個值的總和與相同的總和之間的差:
select
A,
B,
C,
sum(D),
sum(D)/300,
case when sum(D)/300 < 1.5 then 0 else round(sum(D/300), 0) end
from table
group by grouping sets ((A,B,C), ())
SQL有效,但是最后一行是錯誤的。 最后一行的總計似乎對第4列和第5列是正確的,但是在第6列中的總和不等於第5列的總和。
我究竟做錯了什么? (目標:比較第5列和第6列的總數)
歡迎任何幫助!
編輯:
現在的結果是這樣的(僅第5列和第6列):
1,2 0
1,5 2
3,1 3
5,8 6
在此示例中,第二列的總和應為5,但使用未取整的值應為6 ...
您缺少外部SUM
:
select
A,
B,
C,
sum(D),
sum(D)/300,
SUM(case when sum(D)/300 < 1.5 then 0 else round(sum(D/300), 0) end) as result
from table
group by grouping sets ((A,B,C), ())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.