SQL语句 按年龄段分组统计人数问题

drop table #t
create table #t(Uname varchar(10),age int,sex varchar(10))
insert #t
select '啊啊',19,'男' 
union all
select '信息',23,'男' 
union all
select '宝宝',31,'女'
union all
select '喔喔',21,'女'
union all
select '米米',30,'男'
union all
select '米米',24,'男'
union all
select '米米',35,'男'
union all
select '米米',41,'男'
union all
select '米米',16,'男'
union all
select '米米',24,'男'


select nnd as '年龄段',count(*) as '人数',sex as '性别' from
(
select
case
when age>=1 and age<=10 then '1-10'
when age>=11 and age<=20 then '11-20'
when age>=21 and age<=30 then '21-30'
when age>=31 and age<=40 then '31-40' else 'other'
end
as nnd,uname,sex from #t
)
a
group by nnd,sex

--------------------------------------------------------------------------------------------------

drop table #t1
create table #t1(Uname varchar(10),age int)
insert #t1
select '啊啊',19 union all
select '信息',23 union all
select '宝宝',31 union all
select '喔喔',21 union all
select '米米',6


select nnd as '年龄段',count(*) as '人数' from
(
select
case
when age>=1 and age<=10 then '1-10'
when age>=11 and age<=20 then '11-20'
when age>=21 and age<=30 then '21-30'
when age>=31 and age<=40 then '31-40'
end
as nnd,uname from #t1
)
a
group by nnd

posted @ 2009-04-15 09:18  与时俱进  阅读(4297)  评论(1编辑  收藏  举报
友情链接:同里老宅院民居客栈