我有此表(樣品數據):獲得的連續數爲每個分區在查詢
CREATE TABLE A
([Idx] int, [Title] varchar(50), [Sort] int)
;
INSERT INTO A
([Idx], [Title], [Sort])
VALUES
(6, 'b', 1),
(6, 'b', 2),
(6, 'b', 3),
(4, 'a', 4),
(4, 'a', 5),
(4, 'a', 6),
(7, 'c', 7),
(7, 'c', 8),
(7, 'c', 9)
;
我的查詢:
SELECT *
FROM A
ORDER BY Sort
結果:
| Idx | Title | Sort |
|-----|-------|------|
| 6 | b | 1 |
| 6 | b | 2 |
| 6 | b | 3 |
| 4 | a | 4 |
| 4 | a | 5 |
| 4 | a | 6 |
| 7 | c | 7 |
| 7 | c | 8 |
| 7 | c | 9 |
我想要爲查詢中的每個分區獲得從1開始的連續數字。 (分區是通過Idx
)
預期結果:
| Idx | Title | Sort | N |
|-----|-------|------|---|
| 6 | b | 1 | 1 |
| 6 | b | 2 | 1 |
| 6 | b | 3 | 1 |
| 4 | a | 4 | 2 |
| 4 | a | 5 | 2 |
| 4 | a | 6 | 2 |
| 7 | c | 7 | 3 |
| 7 | c | 8 | 3 |
| 7 | c | 9 | 3 |
優選使用? OVER (PARTITION BY Idx ORDER BY Sort)
如果可能的話。
我還必須保持Sort
的順序!
我不能使用DENSE_RANK()b/c它給出了錯誤的結果。 – zig