SQL脚本自动递增,具体取决于列值

Sta*_*hil 3 sql sql-server excel auto-increment

这可能很棘手.我有一个xlsx文件,其中包含一组具有相似列值的行.问题是客户端没有为我提供另一列的正确值(该列不存在).我需要根据另一列中的值自动增加一个新列.当列的值发生更改时,递增的var需要返回0.

EX:

Current
C1 | C2 | 
1  | A  |
2  | A  |
3  | A  |
4  | B  |
5  | B  |

Desired
C1 | C2 | C3 (NEW)
1  | A  | 0
2  | A  | 1
3  | A  | 2
4  | B  | 0
5  | B  | 1
Run Code Online (Sandbox Code Playgroud)

是否可以通过SQL执行此操作?有没有更好的方法在Excel或Access中执行此操作?

Mik*_*oud 5

这很可能用SQL,这里是一个SQL小提琴,这里是小提琴的内容:

CREATE TABLE a
(
  C1 INT,
  C2 VARCHAR(10)
)

GO

INSERT INTO a VALUES (1, 'A')
INSERT INTO a VALUES (2, 'A')
INSERT INTO a VALUES (3, 'A')
INSERT INTO a VALUES (4, 'B')
INSERT INTO a VALUES (5, 'B')

SELECT C1, C2,
  ROW_NUMBER() OVER (PARTITION BY C2 ORDER BY C1) - 1 AS C3
FROM a
Run Code Online (Sandbox Code Playgroud)