相关数据表:
OFF

要求统计如下:
年龄结构

年龄\性别 总计
1-10岁 3 8 11
11-20岁 2 2 4
21-30岁 5 5 10
31-40岁 2 4 6
41-50岁 2 1 3
51-60岁 3 1 4
71-80岁 10 6 16
81-90岁 1 1 2
91-100岁 3 5 8


SQL统计-关于人口年龄 select age_range as 年龄段 ,sum(countas 总数,
SQL统计-关于人口年龄 (
SQL统计-关于人口年龄   
select count from  
SQL统计-关于人口年龄   (
SQL统计-关于人口年龄     
select  sex,age_range,count(*as count from 
SQL统计-关于人口年龄     (
SQL统计-关于人口年龄       
select sex,(((cast(getdate() as int)-cast(birthday as int))/365-1)/10as age_range 
SQL统计-关于人口年龄       
from T_People 
SQL统计-关于人口年龄     ) tb_1 
SQL统计-关于人口年龄     
where age_range>=0   group by age_range,sex
SQL统计-关于人口年龄   ) tb_2 
SQL统计-关于人口年龄   
where sex='' and age_range=tb_3.age_range 
SQL统计-关于人口年龄 ) 
as 男,
SQL统计-关于人口年龄 (
SQL统计-关于人口年龄       
select count from  
SQL统计-关于人口年龄      (
SQL统计-关于人口年龄        
select  sex,age_range,count(*as count from 
SQL统计-关于人口年龄        (
SQL统计-关于人口年龄          
select sex,(((cast(getdate() as int)-cast(birthday as int))/365-1)/10as age_range 
SQL统计-关于人口年龄          
from T_People 
SQL统计-关于人口年龄        ) tb_1 
SQL统计-关于人口年龄        
where age_range>=0   group by age_range,sex
SQL统计-关于人口年龄      ) tb_2 
SQL统计-关于人口年龄      
where sex='' and age_range=tb_3.age_range 
SQL统计-关于人口年龄  ) 
as 女 
SQL统计-关于人口年龄  
from 
SQL统计-关于人口年龄  (
SQL统计-关于人口年龄    
select  sex,age_range,count(*as count from 
SQL统计-关于人口年龄    (
SQL统计-关于人口年龄      
select sex,(((cast(getdate() as int)-cast(birthday as int))/365-1)/10as age_range 
SQL统计-关于人口年龄      
from T_People  
SQL统计-关于人口年龄    ) tb_1 
SQL统计-关于人口年龄    
where age_range>=0   group by age_range,sex
SQL统计-关于人口年龄  ) tb_3 
SQL统计-关于人口年龄  
group by age_range order by age_range
查询结果:
SQL统计-关于人口年龄
年龄段中0即对于1-10岁,依此类推。9以后的都是100岁以上的。
如果还有别的实现方法,还请指出!

相关文章:

  • 2021-06-19
  • 2022-12-23
  • 2022-12-23
  • 2021-10-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-06
猜你喜欢
  • 2022-01-16
  • 2021-10-02
  • 2021-07-14
  • 2022-01-24
相关资源
相似解决方案