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 Fiddle
ROW_NUMBER()
फ़ंक्शन प्रत्येक पंक्ति को एक संख्या निर्दिष्ट करता है। PARTITION BY
वैकल्पिक है, लेकिन उस समूह में प्रत्येक मान के लिए नंबरिंग ओवर प्रारंभ करने के लिए उपयोग किया जाता है, अर्थात:यदि आप PARTITION BY group_id
करते हैं फिर प्रत्येक अद्वितीय group_id
. के लिए मान नंबरिंग 1 पर शुरू होगी। ORDER BY
निश्चित रूप से यह परिभाषित करने के लिए प्रयोग किया जाता है कि गिनती कैसे होनी चाहिए, और ROW_NUMBER()
में आवश्यक है समारोह।