zoukankan      html  css  js  c++  java
  • SQL统计关于人口年龄

    相关数据表:
    人口表

    要求统计如下:
    年龄结构

    年龄\性别 总计
    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


     select age_range as 年龄段 ,sum(countas 总数,
     (
       
    select count from  
       (
         
    select  sex,age_range,count(*as count from 
         (
           
    select sex,(((cast(getdate() as int)-cast(birthday as int))/365-1)/10as 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)/10as 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)/10as 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岁以上的。
    如果还有别的实现方法,还请指出!
  • 相关阅读:
    Python之路第二篇——Python环境与安装
    div层、fieldset分组标签、table表格的居中特效的综合运用
    在不影响系统的情况下给C盘添加磁盘空间(分区工具)
    C# windowsFroms更换皮肤的简单使用
    第二代居民身份证阅读器GTICR100(国腾)接口类调用方法
    C# 指定字符串截取方法
    C# 报表(report)和LocalReport类如何实现打印?
    RewriterURL实现二级域名的访问
    如何修改VS2012产品使用权属于某某的名称?
    OS与Internet
  • 原文地址:https://www.cnblogs.com/tenghoo/p/827957.html
Copyright © 2011-2022 走看看