日期:2014-05-19  浏览次数:20458 次

sql分类统计问题,高手帮忙啊!
高手帮忙:如果要在人员信息表中将年龄分类显示,每类增10,统计每类的人数,年龄范围20--70,怎么写?
显示结果类似这样:
age           number
20-30           1
30-40         10
40-50           7
50-60           4
60-70           2

先谢一下吧!



------解决方案--------------------
select [age]=case when age between 20 and 30 then [20-30]
when age between 31 and 40 then [30-40]
when age between 41 and 50 then [40-50]
when age between 51 and 60 then [50-60]
else [60-70] end,
[number]=count(*)
from ta
group by
case when age between 20 and 30 then [20-30]
when age between 31 and 40 then [30-40]
when age between 41 and 50 then [40-50]
when age between 51 and 60 then [50-60]
else [60-70] end
------解决方案--------------------
create table temp0615(age int)
insert temp0615 select 15
union all select 26
union all select 22
union all select 32
union all select 25
union all select 35
union all select 37
union all select 46
union all select 56
union all select 57
union all select 68
union all select 64


select age ,count(*) as number from(
select age=case when age between 20 and 30 then '20-30 '
when age between 31 and 40 then '30-40 '
when age between 41 and 50 then '40-50 '
when age between 51 and 60 then '50-60 '
else '60-70 ' end
from temp0615) a group by age

drop table temp0615