Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Seleziona i primi 10 record per ogni categoria

Se stai usando SQL 2005 puoi fare qualcosa del genere...

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 il tuo RankCriteria ha pareggi, potresti restituire più di 10 righe e la soluzione di Matt potrebbe essere migliore per te.