且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

为每个类别选择前10条记录

更新时间:2021-08-01 22:23:34

如果您使用的是SQL 2005,则可以执行以下操作...

If you are using SQL 2005 you can do something like this...

SELECT rs.Field1,rs.Field2 
    FROM (
        SELECT Field1,Field2, Rank() 
          over (Partition BY Section
                ORDER BY RankCriteria DESC ) AS Rank
        FROM table
        ) rs WHERE Rank <= 10

如果RankCriteria有关系,那么您可能会返回10行以上,而Matt的解决方案可能更适合您.

If your RankCriteria has ties then you may return more than 10 rows and Matt's solution may be better for you.