我有一个表
A(a1,a2,a3)
例如
a1 a2 a3
3 4 1
6 9 1
2 3 1
2 3 2
2 3 3现在要做一个更新(更新a3),如果其中(a1+a2)(一个组合条件,并不是两个数相加)没有重复数据时,就在a3上记录为1,如果有就+1这样一直记录下去(如上图所示)!
有什么好的办法?
A(a1,a2,a3)
例如
a1 a2 a3
3 4 1
6 9 1
2 3 1
2 3 2
2 3 3现在要做一个更新(更新a3),如果其中(a1+a2)(一个组合条件,并不是两个数相加)没有重复数据时,就在a3上记录为1,如果有就+1这样一直记录下去(如上图所示)!
有什么好的办法?
SET a3 = ROW_NUMBER () OVER (PARTITION BY a1, a2 ORDER BY a1, a2)
没试过,不过row_number应该可以满足,最多写法改一下
SET a3 =
(
select
ROW_NUMBER () OVER (PARTITION BY b.a1, b.a2 ORDER BY b.a1, b.a2)
from a b
where a.rowid=b.rowid)你这表不是知道PK是哪几个,反正肯定不是a1,a2
最好是用主键做关联