当前位置: 代码迷 >> Sql Server >> sql server 2008 分组查询解决思路
  详细解决方案

sql server 2008 分组查询解决思路

热度:45   发布时间:2016-04-24 08:56:06.0
sql server 2008 分组查询
各位,我有一个表,表中有人员的ID,姓名,年龄,我想写一个sql语句,得出小于20的有多少人?20--30,30--40,40-50,50-60,60-70,大于70的人数,sql语句怎么写呀?

------解决思路----------------------

with tbTemp(ID,name,age) as(
select '1001','Jimmy','20'
union all
select '1002','Tom','35'
union all
select '1003','John','85'
union all
select '1004','John1','75'
union all
select '1005','John2','25'
union all
select '1006','John3','65'
)
select case when age<20 then '小于20'
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'
when age between 61 and 70 then '60-70'
when age>70 then '70以上' end Item
,count(1) Numbers
from tbTemp
group by case when age<20 then '小于20'
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'
when age between 61 and 70 then '60-70'
when age>70 then '70以上' end
  相关解决方案