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