Transact SQL - 如何对结果集执行其他操作

时间:2010-11-19 14:05:37

标签: sql-server-2005 group-by

我有一个简单的查询:

select id, count(*) n
from mytable
group by id

是否可以在同一查询中包含sum(n)?所以结果看起来像这样:

id   n
---- -----------
1    12
2    1
3    14
4    1
5    2
6    6

Sum=36

1 个答案:

答案 0 :(得分:2)

您可以使用 common table expression 执行此操作:

--
; WITH cte as (SELECT id
               ,count(*) n
               FROM mytable
               GROUP BY id)
SELECT id, n FROM cte
UNION ALL
SELECT 'Sum', SUM(n) from cte

您还可以使用 ROLLUP :(这可能不是完全正确的语法)

SELECT id
      ,count(*) n
FROM mytable
GROUP BY id
WITH ROLLUP