Utilisez le ROW_NUMBER() fonction pour cela :
SELECT *
FROM (select *,ROW_NUMBER() OVER (PARTITION BY group_id ORDER BY item_id) as RowRank
from items_in_groups
)sub
WHERE RowRank <=2
Démo :SQL Fiddle
Le ROW_NUMBER() La fonction attribue un numéro à chaque ligne. PARTITION BY est facultatif, mais utilisé pour recommencer la numérotation pour chaque valeur de ce groupe, c'est-à-dire :si vous PARTITION BY group_id puis pour chaque group_id unique value la numérotation recommencerait à 1. ORDER BY bien sûr est utilisé pour définir comment le comptage doit se dérouler, et est requis dans le ROW_NUMBER() fonction.