Verwenden Sie die ROW_NUMBER() Funktion dazu:
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
Die ROW_NUMBER() Die Funktion weist jeder Zeile eine Nummer zu. PARTITION BY ist optional, wird aber verwendet, um die Nummerierung für jeden Wert in dieser Gruppe neu zu beginnen, dh:wenn Sie PARTITION BY group_id verwenden dann für jede eindeutige group_id Wert würde die Nummerierung wieder bei 1 beginnen. ORDER BY wird natürlich verwendet, um zu definieren, wie die Zählung ablaufen soll, und wird in der ROW_NUMBER() benötigt Funktion.