PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL MAX और GROUP BY

सबसे छोटी (और संभवतः सबसे तेज़) क्वेरी DISTINCT ON , SQL मानक का एक PostgreSQL एक्सटेंशन DISTINCT खंड:

SELECT DISTINCT ON (1)
       id, count, year
FROM   tbl
ORDER  BY 1, 2 DESC, 3;

संख्याएं SELECT . में क्रमागत स्थितियों को दर्शाती हैं सूची। स्पष्टता के लिए आप कॉलम के नाम लिख सकते हैं:

SELECT DISTINCT ON (id)
       id, count, year
FROM   tbl
ORDER  BY id, count DESC, year;

परिणाम id . द्वारा आदेशित किया गया है आदि जिसका स्वागत किया जा सकता है या नहीं। यह किसी भी मामले में "अपरिभाषित" से बेहतर है।

यह एक अच्छी तरह से परिभाषित तरीके से संबंधों को भी तोड़ता है (जब कई साल समान अधिकतम गिनती साझा करते हैं):सबसे पहले वर्ष चुनें। अगर आपको परवाह नहीं है, तो year ड्रॉप करें ORDER BY . से . या year DESC with के साथ नवीनतम वर्ष चुनें ।

कई . के लिए पंक्तियाँ प्रति id , अन्य क्वेरी तकनीकें (बहुत) तेज हैं। देखें:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक ही PostgreSQL डेटाबेस के दो मालिक

  2. पोस्टग्रेज:JSON कॉलम को पंक्तियों में विस्तृत करें

  3. तार्किक नाम के साथ कॉलम खोजने में असमर्थ

  4. PostgreSQL:विंडोज़ में स्वचालित बैकअप

  5. स्प्रिंग बूट 2 में, क्या एक अद्वितीय बाधा के साथ जॉइनटेबल को स्वतः उत्पन्न करना संभव है?