高手帮忙:如果要在人员信息表中将年龄分类显示,每类增10,统计每类的人数,年龄范围20--70,怎么写?
显示结果类似这样:
age     number
20-30     1
30-40    10
40-50     7
50-60     4
60-70     2先谢一下吧!

解决方案 »

  1.   

    select [age]=case  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]
    else [60-70] end,
    [number]=count(*)
    from ta
      

  2.   

    select [age]=case  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]
    else [60-70] end,
    [number]=count(*)
    from ta
    group by 
    case 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]
    else [60-70] end
      

  3.   

    create table temp0615(age int)
    insert temp0615 select 15
    union all select 26
    union all select 22
    union all select 32
    union all select 25
    union all select 35
    union all select 37
    union all select 46
    union all select 56
    union all select 57
    union all select 68
    union all select 64
    select age ,count(*) as number from(
    select age=case    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'
    else '60-70' end 
    from temp0615) a group by agedrop table temp0615