Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Sélectionnez les 10 meilleurs enregistrements pour chaque catégorie

Si vous utilisez SQL 2005, vous pouvez faire quelque chose comme ça...

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

Si votre RankCriteria a des liens, vous pouvez renvoyer plus de 10 lignes et la solution de Matt peut être meilleure pour vous.