Sam*_*ron 6 sql sql-server sql-server-2008
鉴于下表:
Sequence Tag ----- ---- 1 a 2 a 3 a 88 a 100 a 1 b 7 b 88 b 101 b
我想要一个查询返回每个标签序列中的第4个(按标签,序列asc排序):
Tag 4thInSequence ----- -------- a 88 b 101
我可以在这里使用的最有效的SQL是什么?(注意:允许使用SQL Server 2008技巧)
WITH Enumerated AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY Tag ORDER BY Sequence) AS RN
FROM MyTable
)
SELECT * FROM Enumerated WHERE RN = 4;
Run Code Online (Sandbox Code Playgroud)