यह DISTINCT ON
. के लिए एकदम सही उपयोग-मामला है - मानक DISTINCT
. के विशिष्ट एक्सटेंशन को पोस्टग्रेज़ करता है :
SELECT DISTINCT ON (category)
id -- , category, date -- any other column (expression) from the same row
FROM tbl
ORDER BY category, date DESC;
अवरोही क्रम के साथ सावधान। यदि कॉलम NULL हो सकता है, तो आप NULLS LAST
जोड़ना चाह सकते हैं :
- कॉलम ASC के अनुसार क्रमित करें, लेकिन NULL मान पहले?
DISTINCT ON
सरल और तेज है। इस संबंधित उत्तर में विस्तृत विवरण:
- समूह द्वारा प्रत्येक समूह में पहली पंक्ति का चयन करें?
कई पंक्तियों वाली बड़ी तालिकाओं के लिए category
एक वैकल्पिक दृष्टिकोण पर विचार करें:
- प्रति उपयोगकर्ता नवीनतम पंक्ति पुनर्प्राप्त करने के लिए क्वेरी द्वारा GROUP को अनुकूलित करें
- समूहवार अधिकतम क्वेरी अनुकूलित करें