假设我有一个带有数字列的表(我们称之为“分数”)。
我想生成一个计数表,显示每个范围内出现了多少次分数。
例如:
score range | number of occurrences ------------------------------------- 0-9 | 11 10-19 | 14 20-29 | 3 ... | ...
在此示例中,有 11 行得分在 0 到 9 之间,14 行得分在 10 到 19 之间,3 行得分在 20 到 29 之间。
有没有简单的方法来设置它?你有什么建议吗?
在 SQL Server 2000 上,投票最高的答案都不是正确的。也许他们使用的是不同的版本。
以下是它们在 SQL Server 2000 上的正确版本。
select t.range as [score range], count(*) as [number of occurences] from ( select case when score between 0 and 9 then ' 0- 9' when score between 10 and 19 then '10-19' else '20-99' end as range from scores) t group by t.range
或者
select t.range as [score range], count(*) as [number of occurrences] from ( select user_id, case when score >= 0 and score< 10 then '0-9' when score >= 10 and score< 20 then '10-19' else '20-99' end as range from scores) t group by t.range