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.