鉴于下表:

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;

dawei

【声明】:丽水站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。