ROW_NUMBER()
を使用します このための関数:
SELECT *
FROM (select *,ROW_NUMBER() OVER (PARTITION BY group_id ORDER BY item_id) as RowRank
from items_in_groups
)sub
WHERE RowRank <=2
デモ:SQL フィドル
ROW_NUMBER()
関数は各行に番号を割り当てます。 PARTITION BY
オプションですが、そのグループの各値の番号付けをやり直すために使用されます。つまり、 PARTITION BY group_id
の場合 次に、一意の group_id
ごとに 値を指定すると、番号付けは 1 から始まります。 ORDER BY
もちろん、カウント方法を定義するために使用され、 ROW_NUMBER()
で必要です 関数。