如果我有一个这样的表:
pkey age
---- ---
1 8
2 5
3 12
4 12
5 22
我可以“分组”来计算每个年龄。
select age,count(*) n from tbl group by age;
age n
--- -
5 1
8 1
12 2
22 1
我可以使用什么查询来按年龄范围进行分组?
age n
----- -
1-10 2
11-20 2
20+ 1
我使用 10gR2,但我也对任何特定于 11g 的方法感兴趣。
最佳答案
SELECT CASE
WHEN age <= 10 THEN '1-10'
WHEN age <= 20 THEN '11-20'
ELSE '21+'
END AS age,
COUNT(*) AS n
FROM age
GROUP BY CASE
WHEN age <= 10 THEN '1-10'
WHEN age <= 20 THEN '11-20'
ELSE '21+'
END
关于sql - Oracle:如何使 "group by"超过一个范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2483140/