根据属性的值域和输入的组数自动分组并输出结果
菜鸟……是真的没什么基础,各种百度模仿憋了一段代码……果然没通过。希望有大神可以指点该怎么改!感激不尽啊感激不尽 T▽T一个表,多个属性,以一个属性[年龄]为例,组数可以选不同的数值,对应有不同的分组。比如我设定分为5组,就会根据[年龄]这个属性的值域(我采用的是max-min),和组数,相除取上天花板得到组距,那根据组距和与最小值的差,就可以算出来一个年龄它应该属于第几组,增加一个新的属性,把这个值放入对应行。
求指点~~~
declare
@number int, --划分组数,可变
@p int,
@zuju int,
@xia int;
set @number=5
set @xia=min([年龄])
set @zuju=ceiling((max([年龄])-@xia)\@number) --组距
alter table dbo.Sheet1$ add [新年龄] int null --新增一个属性,返回该行年龄分到第几组
go
--声明游标
declare cursor_eye cursor fast_forward for
select [年龄]
from sheet1$
where [年龄] is not null
order by [年龄];
open cursor_eye;
fetch next from sheet1$ into @p;
while @@fetch_status=0
begin
update sheet1$ set [新年龄]=(@p-@xia)/@zuju +1
where [年龄]=@p;
fetch next from sheet1$ into @p;
end
--关闭并释放游标
close cursor_eye ;
deallocate cursor_eye;