如何编写SQL来生成如下所示的行集?其中一行是其他行的聚合。
Column1 Column 2
Value1 12
Value2 11
Value3 6
Value4 17
total 46
答案 0 :(得分:2)
将Group by
与ROLLUP
;WITH cte
AS (SELECT*
FROM (VALUES ('Value1',12),
('Value2',11),
('Value3',6 ),
('Value4',17)) tc (Column1, Column2))
SELECT column1= case when grouping(column1) = 1 then 'total' else column1 END,
column2=Sum(column2)
FROM cte
GROUP BY rollup( column1 )
结果:
column1 column2
------- -------
Value1 12
Value2 11
Value3 6
Value4 17
total 46