id  score
1    90
2    85
3    87
4    60
5    98
6    55
7    6790到100   80到90    80以下
  2个         2个    3个如何写?

解决方案 »

  1.   

    select sum(case when score > 90 then 1 else 0 end) a,
    sum(case when score > 80 and score < 90 then 1 else 0 end) b,
    sum(case when score < 80 then 1 else 0 end) c
    from table
      

  2.   

    ——给你一个参考,稍微修改一下就可以用了
    declare @t table(id int,weight int)
    insert into @t select  1, 20
    insert into @t select  2, 15
    insert into @t select  3,  5
    insert into @t select  4, 60
    insert into @t select  5, 12
    insert into @t select  6, 33
    insert into @t select  7, 45
    insert into @t select  8, 59
    insert into @t select  9, 89
    insert into @t select 10,110declare @p int 
    set @p=10
    select 
        rtrim(p*@p)+'-'+rtrim((p+1)*@p) as p,
        num 
    from 
        (select (weight/@p) as p,count(*) as num from @t where weight between 10 and 50 group by (weight/@p)) a/*结果:
    p                         num         
    ------------------------- ----------- 
    10-20                     2
    20-30                     1
    30-40                     1
    40-50                     1
    */