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

पोस्टग्रेएसक्यूएल और रेल 3 के साथ सहयोग में क्षेत्र द्वारा आदेशित अद्वितीय रिकॉर्ड ढूँढना?

आप जिस क्वेरी की तलाश कर रहे हैं वह इस तरह दिखनी चाहिए:

SELECT user_id, min(created_at) AS min_created_at
FROM   cards
WHERE  company_id = 1
GROUP  BY user_id
ORDER  BY min(created_at)

आप तालिका में शामिल हो सकते हैं user यदि आपको परिणाम में उस तालिका के कॉलम चाहिए, अन्यथा आपको क्वेरी के लिए इसकी आवश्यकता भी नहीं है।
यदि आपको min_created_at की आवश्यकता नहीं है SELECT . में सूची, आप इसे छोड़ सकते हैं।

रूबी में अनुवाद करना आसान होना चाहिए (जिसमें मैं अच्छा नहीं हूं)।

संपूर्ण उपयोगकर्ता रिकॉर्ड प्राप्त करने के लिए (जैसा कि मैं आपकी टिप्पणी से प्राप्त करता हूं):

SELECT u.*,
FROM   user u
JOIN  (
    SELECT user_id, min(created_at) AS min_created_at
    FROM   cards
    WHERE  company_id = 1
    GROUP  BY user_id
    ) c ON u.id = c.user_id
ORDER  BY min_created_at

या:

SELECT u.*
FROM   user u
JOIN   cards c ON u.id = c.user_id
WHERE  c.company_id = 1
GROUP  BY u.id, u.col1, u.col2, ..   -- You have to spell out all columns!
ORDER  BY min(c.created_at)

PostgreSQL 9.1+ के साथ आप बस लिख सकते हैं:

GROUP  BY u.id

(जैसे MySQL में) .. प्रदान किया गया 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. पीजी कॉलम को न्यूलेबल ट्रू में कैसे बदलें?

  2. Postgresql फ़ंक्शन समग्र लौटाता है - मैं समग्र मानों को अलग-अलग स्तंभों के रूप में कैसे एक्सेस करूं?

  3. मैं plpgsql के माध्यम से Postgres से तालिका की प्राथमिक कुंजी कैसे प्राप्त करूं?

  4. बड़ी संख्या में रिकॉर्ड चलाने के लिए हमेशा के लिए कार्य करना

  5. एक postgresql तालिका से गतिशील रूप से एक JSON सरणी तत्व का चयन करने की आवश्यकता है