sql >> Databáze >  >> RDS >> Sqlserver

SQL – Omezte počet vrácených řádků na základě počtu řádků

Použijte ROW_NUMBER() funkce pro toto:

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

Ukázka:SQL Fiddle

 ROW_NUMBER() funkce přiřadí každému řádku číslo. PARTITION BY je nepovinné, ale používá se k zahájení číslování pro každou hodnotu v této skupině, tj.:pokud PARTITION BY group_id pak pro každý jedinečný group_id číslování by začínalo od 1. ORDER BY samozřejmě se používá k definování toho, jak by mělo počítání probíhat, a je vyžadováno v ROW_NUMBER() funkce.



  1. Provádění různých dotazů pomocí mysql-python

  2. Mysql_fetch_array( $result, MYSQL_BOTH ) není přesné

  3. Chyba SQL LIKE dotazu - závažná chyba v připraveném příkazu

  4. Chyba při připojování k databázi:(pomocí třídy org.gjt.mm.mysql.Driver)