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

Postgresql प्रत्येक आईडी के लिए अंतिम पंक्ति निकालें

Postgres के distinct on . का उपयोग करने का सबसे कारगर तरीका है ऑपरेटर

select distinct on (id) id, date, another_info
from the_table
order by id, date desc;

यदि आप ऐसा समाधान चाहते हैं जो सभी डेटाबेस में काम करे (लेकिन कम कुशल है) तो आप एक विंडो फ़ंक्शन का उपयोग कर सकते हैं:

select id, date, another_info
from (
  select id, date, another_info, 
         row_number() over (partition by id order by date desc) as rn
  from the_table
) t
where rn = 1
order by 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 SQL GROUP BY समय अंतराल मनमाने ढंग से सटीकता के साथ (मिली सेकंड तक)

  2. ऑफ़सेट सीमा वाली क्वेरी का चयन बहुत धीमा है

  3. PostgreSQL एक्सेंट + केस असंवेदनशील खोज

  4. PostgreSQL तार्किक प्रतिकृति का अनुकूलन कैसे करें

  5. किसी क्वेरी को चलाने के लिए किसी .sql फ़ाइल की सामग्री को R स्क्रिप्ट में कैसे पढ़ा जाए?