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

पोस्टग्रेज:अलग लेकिन केवल एक कॉलम के लिए

केवल एक (या n) कॉलम पर अलग करने के लिए:

select distinct on (name)
    name, col1, col2
from names

यह नाम वाली किसी भी पंक्ति को वापस कर देगा। यदि आप नियंत्रित करना चाहते हैं कि कौन सी पंक्तियाँ लौटाई जाएँगी तो आपको ऑर्डर करने की आवश्यकता होगी:

select distinct on (name)
    name, col1, col2
from names
order by name, col1

col1 द्वारा आदेश दिए जाने पर पहली पंक्ति लौटाएगा।

distinct on :

<ब्लॉकक्वॉट>

SELECT DISTINCT ON (अभिव्यक्ति [,...] ) पंक्तियों के प्रत्येक सेट की केवल पहली पंक्ति रखता है जहाँ दिए गए भाव का मूल्यांकन बराबर होता है। अभिव्यक्तियों पर DISTINCT की व्याख्या उसी नियमों का उपयोग करके की जाती है जैसे ORDER BY (ऊपर देखें)। ध्यान दें कि प्रत्येक सेट की "पहली पंक्ति" अप्रत्याशित है जब तक कि यह सुनिश्चित करने के लिए ORDER BY का उपयोग नहीं किया जाता है कि वांछित पंक्ति पहले दिखाई देती है।

व्यंजकों पर DISTINCT अभिव्यक्ति (अभिव्यक्तियों) द्वारा सबसे बाईं ओर के ORDER से मेल खाना चाहिए। ORDER BY क्लॉज में आम तौर पर अतिरिक्त एक्सप्रेशन होंगे जो समूह पर प्रत्येक DISTINCT के भीतर पंक्तियों की वांछित प्राथमिकता निर्धारित करते हैं।



  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. ऑपरेटर मौजूद नहीं है:json =json

  3. मेरा पसंदीदा पोस्टग्रेएसक्यूएल एक्सटेंशन - भाग एक

  4. psycopg2 TypeError से कैसे निपटता है:स्ट्रिंग स्वरूपण के दौरान सभी तर्क परिवर्तित नहीं होते हैं

  5. PostgreSQL टाइमस्टैम्प्टज़ प्रकार में समय क्षेत्र को सुरक्षित रखें