select count(*) from yourtable group by (girl+15)/20
warning说的case语句如何实现可变的参数呀?
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
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仅提供一个思路而已,代码没有测试!
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
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仅提供一个思路而已,代码没有测试!
这样做不能动态的改变!太死!
多 谢 各 位
我不会orcale,我只用过db2,用存储过程,也可以向你那样写呀。
学习学习,:)