鉴于下表:
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;