Gunakan ROW_NUMBER()
fungsi untuk ini:
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()
fungsi memberikan nomor untuk setiap baris. PARTITION BY
adalah opsional, tetapi digunakan untuk memulai penomoran ulang untuk setiap nilai dalam grup itu, yaitu:jika Anda PARTITION BY group_id
kemudian untuk setiap group_id
yang unik nilai penomoran akan dimulai dari 1. ORDER BY
tentu saja digunakan untuk menentukan bagaimana penghitungan harus berjalan, dan diperlukan dalam ROW_NUMBER()
fungsi.