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

प्रत्येक समूह के लिए उच्चतम

पोस्टग्रेज़ विशिष्ट (और सबसे तेज़) समाधान:

select distinct on (out_id) *
from foo
order by out_id, id desc;

विंडो फ़ंक्शन का उपयोग कर मानक SQL समाधान (दूसरा सबसे तेज़)

select id, x_part, y_part, out_id, out_idx
from (
  select id, x_part, y_part, out_id, out_idx, 
         row_number() over (partition by out_id order by id desc) as rn
  from foo
) t
where rn = 1
order by id;

ध्यान दें कि दोनों समाधान केवल प्रत्येक id लौटाएंगे एक बार, भले ही अनेक out_id हों मूल्य जो समान हैं। यदि आप चाहते हैं कि वे सभी वापस आ जाएं, तो dense_rank() . का उपयोग करें row_number() . के बजाय



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेस्क्ल इंसर्ट फ्रॉम सेलेक्ट रिटर्निंग आईडी

  2. PostgreSQL v13 क्लस्टरकंट्रोल के साथ परिनियोजन और स्केलिंग 1.8.2

  3. PostgreSQL में SSL कैसे इनेबल करें

  4. PostgreSQL से R . में फ़ाइलें आयात करना

  5. तालिका के अंत में NULL मानों को क्रमबद्ध करें