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

SQL - Limita il numero di righe restituite in base al conteggio delle righe

Usa il ROW_NUMBER() funzione per questo:

SELECT *
FROM (select *,ROW_NUMBER() OVER (PARTITION BY group_id ORDER BY item_id) as RowRank 
      from items_in_groups
      )sub
WHERE RowRank <=2

Demo:SQL Fiddle

Il ROW_NUMBER() La funzione assegna un numero a ciascuna riga. PARTITION BY è facoltativo, ma utilizzato per ricominciare la numerazione per ogni valore in quel gruppo, cioè:se PARTITION BY group_id quindi per ogni group_id univoco valore la numerazione ricomincerebbe da 1. ORDER BY ovviamente viene utilizzato per definire come dovrebbe andare il conteggio ed è richiesto in ROW_NUMBER() funzione.