这可能很棘手。我有一个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
是否可以通过SQL执行此操作?有没有更好的方法在Excel或Access中执行此操作?
答案 0 :(得分:5)
使用SQL非常有用,这里是SQL Fiddle,这是小提琴的内容:
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