|
sorry,昨晚看错了。你的思想是对的,是一个好办法,比用聚合函数效率高。
对于可能的重复值产生的效果,楼主要看自己需要了。
declare @table table(a1 int,a2 int,data int)
insert into @table select 1,1,10
insert into @table select 2,1,11
insert into @table select 3,1,12
insert into @table select 4,1,13
insert into @table select 5,2,10
insert into @table select 6,2,11
insert into @table select 7,2,12
insert into @table select 8,2,13
insert into @table select 9,2,19
insert into @table select 10,2,19
insert into @table select 11,2,110
select t1.a1, t1.a2, t1.data, t1.a1-t2.a + 1
from @table t1,(select min (a1) a, a2 from @table group by a2) t2
where t1.a2=t2.a2
select a.a1,a.a2,a.data ,count(a.a1) seq
from @table a,@table b
where a.a2=b.a2 and a.data>=b.data
group by a.a1,a.a2,a.data |
|