最近很多同事问类似问题,如何取出每个分类的TOP 10,现提供一种比较方便的方法,供大家参考。
示例数据库:AdventureWorks
比如:取出每个商品分类中最近发布的10条记录
1
SELECT * FROM
2
(
3
4
SELECT ROW_NUMBER() OVER (PARTITION BY ProductSubcategoryID ORDER BY ModifiedDate DESC) AS RowNumber,ProductID,Name,ProductSubcategoryID,ModifiedDate
5
FROM Production.Product WHERE ProductSubcategoryID IS NOT NULL
6
7
) T
8
WHERE RowNumber<=10
9

2

3

4

5

6

7

8

9

这里主要是通过 ROW_NUMBER 创建一个条件出来。
大家有好的方法,也希望提供出来让大家学习学习。