SQL:为每个ID增加列值(循环吗?)

时间:2019-12-10 11:58:40

标签: sql sql-server tsql

我有一张这样的桌子:

Table

我把一个很大的存储过程做成一个

,最后做一个枢轴。 我想做的是像标识列一样填充“索引”列,但必须像每个ID一样从“ 1”重新开始

this

我认为它一定是某种foreach(id)

PS:ID并不总是3 ..这是示例。

1 个答案:

答案 0 :(得分:3)

将ROW_NUMBER()与PARTITION BY一起使用似乎是一种创建索引列的好方法。像这样:

SELECT
    ID 
    , [Time]
    , IDx
    , ROW_NUMBER() OVER(PARTITION BY ID
           ORDER BY IDx ASC) AS "Index"
FROM
    myTable;