sql >> Base de Datos >  >> RDS >> Sqlserver

Seleccione los 10 mejores registros para cada categoría

Si está utilizando SQL 2005, puede hacer algo como esto...

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 su RankCriteria tiene empates, puede devolver más de 10 filas y la solución de Matt puede ser mejor para usted.