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.