Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Selecione os 10 melhores registros para cada categoria


Se você estiver usando o SQL 2005, você pode fazer algo assim ...
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

Se o seu RankCriteria tiver empates, você poderá retornar mais de 10 linhas e a solução de Matt pode ser melhor para você.