SQL 分组集和综述



我正在尝试使用特定的舍入规则(第 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,52  
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), ())

相关内容

  • 没有找到相关文章

最新更新