有没有人知道一个简单的方法来创建这个结果的轴心:
[0-1] [1-2] [2-3] [3-4]
12 45 29 5此结果是通过查询创建的:
SELECT [0-1] = SUM(CASE WHEN AGE >= 0 AND AGE <= 1 THEN 1 ELSE 0 END),
[1-2] = SUM(CASE WHEN AGE > 1 AND AGE <= 2 THEN 1 ELSE 0 END),
[2-3] = SUM(CASE WHEN AGE > 2 AND AGE <= 3 THEN 1 ELSE 0 END)
FROM dbo.Persons我希望将列值显示为行,即输出应如下所示:
[0-1] 12
[1-2] 45
[2-3] 29
[3-4] 5文章/博客的链接也很受欢迎。请建议一个简单易用的解决方案。
发布于 2013-08-21 18:49:31
下面是一种使用cross join和聚合的方法:
select ages.minage, ages.maxage,
sum(case when age > ages.minage and age <= ages.maxage then 1 else 0 end) as cnt
from dbo.Persons cross join
(select -1 as minage, 1 as maxage union all
select 1, 2 union all
select 2, 3
) as ages
group by ages.minage, ages.maxage我喜欢这种方法,因为它很容易添加新的年龄范围。请注意,这也包括范围。
https://stackoverflow.com/questions/18355311
复制相似问题