Sử dụng ROW_NUMBER() chức năng này:
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
ROW_NUMBER() hàm gán một số cho mỗi hàng. PARTITION BY là tùy chọn, nhưng được sử dụng để bắt đầu đánh số lại cho từng giá trị trong nhóm đó, tức là:nếu bạn PARTITION BY group_id sau đó cho mỗi group_id duy nhất giá trị đánh số sẽ bắt đầu lại ở 1. ORDER BY tất nhiên được sử dụng để xác định cách đếm và được yêu cầu trong ROW_NUMBER() chức năng.