我有一个查询:
DECLARE @t TABLE(NAME NVARCHAR(MAX),datee date,val money)
insert INTO @t SELECT 'a','2012-01-02',100
insert INTO @t SELECT 'a','2012-01-02',100
insert INTO @t SELECT 'a','2012-01-03',100
insert INTO @t SELECT 'a','2012-01-05',100
insert INTO @t SELECT 'b','2012-01-06',200
insert INTO @t SELECT 'b','2012-01-07',200
insert INTO @t SELECT 'd','2012-01-07',400
insert INTO @t SELECT 'e','2012-01-09',500
insert INTO @t SELECT 'f','2012-01-12',600
SELECT Name,datee,SUM (val)
from @t GROUP BY NAME ,datee
目前的结果为:
但我需要在末尾添加sum
。
所以我尝试使用rollup:
SELECT Name,datee,SUM (val)
from @t GROUP BY NAME ,datee with ROLLUP
但我只需要最后一行的总计。 我不需要报告内的 sum's
那么如何得到所需结果?
(我不能更改 group by
子句,因为其他人也需要它,我只想在末尾添加 sum,带/不带 rollup)。
group by a,b,c
并开始做group by grouping sets(a,b,c)
作为未来 sum 的准备(如果我需要的话)......对吗? - Royi NamirGROUPING SETS
。如果普通的GROUP BY
满足您的要求,我会坚持使用它。我不知道GROUP BY GROUPING SETS
和GROUP BY col1, col2
之间是否存在任何性能差异...这取决于特定的情况,但我倾向于以尽可能简单的方式处理事情。 - Ivan Golović