sql >> Database >  >> RDS >> Sqlserver

SQL - Beperk het aantal geretourneerde rijen op basis van het aantal rijen

Gebruik de ROW_NUMBER() functie hiervoor:

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

De ROW_NUMBER() functie wijst een nummer toe aan elke rij. PARTITION BY is optioneel, maar wordt gebruikt om de nummering opnieuw te beginnen voor elke waarde in die groep, dat wil zeggen:als u PARTITION BY group_id vervolgens voor elke unieke group_id waarde zou de nummering opnieuw beginnen bij 1. ORDER BY wordt natuurlijk gebruikt om te definiëren hoe het tellen moet gaan, en is vereist in de ROW_NUMBER() functie.



  1. Rijdoelen, deel 4:Het anti-join-antipatroon

  2. Wijzig de in MySQL opgeslagen procedure 'Database Collation'-naam

  3. Rij bijwerken met subquery die meerdere rijen retourneert

  4. Hoe door pijpen gescheiden tekstbestandsgegevens naar de SQLServer-tabel te importeren