SQL将值添加到GROUP BY的现有结果集

时间:2013-11-20 16:33:57

标签: sql-server-2008 group-by resultset

表格中的特定数据列用于对结果集进行分组。是否可以向GROUP BY添加值而不将它们包含在原始数据中,以强制显示不存在的值的分组。

Here's my fiddle

例如,table student包含一个名为ks2的列,它具有以下值:

2a
3b
2a
4c
3b

带有计数的小组会这样做:

2a    2
3b    2
4c    1

但是我想强制它在结果集中包含值,例如4b:

2a    2
3b    2
4c    1
4b    0

2 个答案:

答案 0 :(得分:2)

这是一个不寻常的请求,但您可以应用union技巧。

http://sqlfiddle.com/#!3/92fa4/3

SELECT s.ks2,count(1)
FROM student s 
GROUP BY s.ks2
union
select '4b',0
from student s

答案 1 :(得分:0)

With s as (SELECT s.ks2 ad 'd'
FROM student s 
 union all 
select '4b' from student s)
Select d,count(d)
From s
Group by d