什么意思?是要统计每个分组内记录的个数?用case语句好了

解决方案 »

  1.   

    select count(*) from yourtable group by (girl+15)/20 
      

  2.   

    warning说的case语句如何实现可变的参数呀?
      

  3.   

    case + group
    example:
    select num,count(*) from (
    select case when girl<5 then 1
                when girl>4 and girl <25 then 2
                ...
                else 7 end as num from yourtable ) as temp
    group by num
      

  4.   

    declare @min int,@max int,@zhong int,@jieguo,@gongcha
    select @min=0
    select @max=4----------初值 - 1
    select @zhong=---------终值
    select @gongcha=20-----公差
    while @max <=@zhong
    begin
    select @jieguo=count(*) from table where girl between @min and @max
    print '('+cast(@min as varchar(10))+ cast(@max as varchar(10))+')' 
    print cast(@jieguo as varchar(10))
    set @min=@min+@zhong
    set @max=@max+@zhong
    end仅提供一个思路而已,代码没有测试!
      

  5.   

    to:superjj2002() 
    这样做不能动态的改变!太死!
      

  6.   

    duo jie ge wei
    多  谢  各  位
      

  7.   

    hehe
    我不会orcale,我只用过db2,用存储过程,也可以向你那样写呀。
    学习学习,:)