结果如下:
年龄 人数
30   23
31     15
34     23
.....

解决方案 »

  1.   

    select datediff(yy,生日,getdate()) as 年龄 ,count(*) as  人数
    from 表
    group  datediff(yy,生日,getdate())
      

  2.   

    select datediff(year,getdate(),出生年月) as yearold,count(*)
    from talbe1
    group by yearold
      

  3.   

    select count(*) , datediff(yy,birth,getdate()) from @t
    group by datediff(yy,birth,getdate())
      

  4.   


    select count(*) , datediff(month,birth,getdate())/12  as a from @t
    group by datediff(month,birth,getdate())/12
      

  5.   

    select 年龄=datediff(year,出生年月,getdate()),人数=count(1) 
    from 员工表 
    group by datediff(year,出生年月,getdate())
      

  6.   

    select 
    case when datediff(yy,'20060406',getdate()) > 0 and (datediff(mm,'20060406',getdate()) < 12)
    then datediff(yy,'20060406',getdate()) - 1
    when datediff(yy,'20060406',getdate()) = 0 and datediff(mm,'20060406',getdate()) < 12 then 0
    else datediff(yy,'20060406',getdate()) end as 年龄,count(*) as 人数
    from table1
      

  7.   

    select 
    case when datediff(yy,出生年月,getdate()) > 0 and (datediff(mm,出生年月,getdate()) < 12)
    then datediff(yy,出生年月,getdate()) - 1
    when datediff(yy,出生年月,getdate()) = 0 and datediff(mm,出生年月,getdate()) < 12 then 0
    else datediff(yy,出生年月,getdate()) end as 年龄,count(*) as 人数
    from table1
      

  8.   

    优化一下,最终结果应该是:
    select case when datediff(mm,出生年月,getdate()) < 12 then 0
    else datediff(yy,出生年月,getdate()) end as 年龄,count(*) as 人数
    from table1