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

पोस्टग्रेज के साथ सम्मिलित तालिका में केवल एक पंक्ति में कैसे शामिल हों?

select distinct on (author.id)
    book.id, author.id, author.name, book.title as last_book
from
    author
    inner join
    book on book.author_id = author.id
order by author.id, book.id desc

चेक distinct on

अलग-अलग के साथ order by . में "विशिष्ट" कॉलम शामिल करना आवश्यक है . यदि वह वह क्रम नहीं है जो आप चाहते हैं तो आपको क्वेरी को लपेटने और पुन:क्रमित करने की आवश्यकता है

select 
    *
from (
    select distinct on (author.id)
        book.id, author.id, author.name, book.title as last_book
    from
        author
        inner join
        book on book.author_id = author.id
    order by author.id, book.id desc
) authors_with_first_book
order by authors_with_first_book.name

एक अन्य समाधान विंडो फ़ंक्शन का उपयोग करना है जैसा कि लेनार्ट के उत्तर में है। और एक और बहुत ही सामान्य यह है

select 
    book.id, author.id, author.name, book.title as last_book
from
    book
    inner join
    (
        select author.id as author_id, max(book.id) as book_id
        from
            author
            inner join
            book on author.id = book.author_id
        group by author.id
    ) s
    on s.book_id = book.id
    inner join
    author on book.author_id = author.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. Google क्लाउड (GCP) पर PostgreSQL बैकअप संग्रहीत करने के लिए युक्तियाँ

  2. लायन अपडेट ने 'पोस्टग्रेज' यूजर को हटा दिया। इसे कैसे पुनर्स्थापित करें?

  3. बाएं जॉइन के साथ क्वेरी 0 की गिनती के लिए पंक्तियों को वापस नहीं कर रही है

  4. विशिष्टता को लागू करने के लिए एक बहु-स्तंभ अनुक्रमणिका बनाएं

  5. Django उत्पादन के लिए ऑटो-वृद्धि पीके/आईडी फ़ील्ड रीसेट करें