0

我正在尝试使用特定的汇总规则(第 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...

4

1 回答 1

0

您缺少外部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), ())
于 2017-07-12T19:40:45.213 回答