SQL统计-关于人口年龄

相关数据表:
人口表

要求统计如下:
年龄结构

年龄/性别总计
1-10岁3811
11-20岁224
21-30岁5510
31-40岁246
41-50岁213
51-60岁314
71-80岁10616
81-90岁112
91-100岁358


  select  age_range  as  年龄段 , sum ( count as  总数,
 (
   
select   count   from   
   (
     
select   sex,age_range, count ( * as   count   from  
     (
       
select  sex,((( cast ( getdate ()  as   int ) - cast (birthday  as   int )) / 365 - 1 ) / 10 as  age_range 
       
from  T_People 
     ) tb_1 
     
where  age_range >= 0     group   by  age_range,sex
   ) tb_2 
   
where  sex = ' '   and  age_range = tb_3.age_range 
 ) 
as  男,
 (
       
select   count   from   
      (
        
select   sex,age_range, count ( * as   count   from  
        (
          
select  sex,((( cast ( getdate ()  as   int ) - cast (birthday  as   int )) / 365 - 1 ) / 10 as  age_range 
          
from  T_People 
        ) tb_1 
        
where  age_range >= 0     group   by  age_range,sex
      ) tb_2 
      
where  sex = ' '   and  age_range = tb_3.age_range 
  ) 
as  女 
  
from  
  (
    
select   sex,age_range, count ( * as   count   from  
    (
      
select  sex,((( cast ( getdate ()  as   int ) - cast (birthday  as   int )) / 365 - 1 ) / 10 as  age_range 
      
from  T_People  
    ) tb_1 
    
where  age_range >= 0     group   by  age_range,sex
  ) tb_3 
  
group   by  age_range  order   by  age_range
查询结果:

年龄段中0即对于1-10岁,依此类推。9以后的都是100岁以上的。
如果还有别的实现方法,还请指出!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值