一列,对于列A =数字的每一行递增,当A =另一个数字时重置为零并再次递增

时间:2017-05-22 17:54:16

标签: sql vb.net

我需要一个列(LineCount),该列为另一列(ItemID)中的每个ID实例递增,例如:

 |ItemID|LineCount|
 ------------------
 | 1    | 1
 ------------------
 | 1    | 2
 ------------------
 | 1    | 3
 ------------------
 | 2    | 1  
  ------------------
 | 2    | 2
 ------------------
 | 2    | 3
 ------------------
 | 2    | 4
 ------------------
 | 2    | 5
  ------------------
 | 3    | 1
 ------------------
 | 3    | 2
  ------------------
 | 3    | 3
 ------------------
 | 3    | 4

SQL可能类似于:

"Insert into TableA increment LineCount Where ITEMID = @ITEMID"

1 个答案:

答案 0 :(得分:0)

您的代码看起来像SQL Server。如果是这样,您可以使用窗口函数row_number生成分区序列号。

insert into tablea
select itemId,
    row_number() over (
        partition by itemId order by itemId
        )
from your_table;