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

PostgreSQL SELECT स्टेटमेंट में डुप्लिकेट पंक्तियों को हटा दें

PostgreSQL वर्तमान में अस्पष्ट GROUP BY . की अनुमति नहीं देता है बयान जहां परिणाम तालिका स्कैन किए गए क्रम पर निर्भर हैं, योजना का उपयोग किया जाता है, आदि। इस तरह मानक कहता है कि इसे AFAIK काम करना चाहिए, लेकिन कुछ डेटाबेस (जैसे 5.7 से पहले MySQL संस्करण) कमजोर प्रश्नों की अनुमति देते हैं जो केवल पहला मान चुनते हैं SELECT . में दिखने वाले तत्वों का सामना करना पड़ा सूची लेकिन GROUP BY . में नहीं ।

PostgreSQL में, आपको DISTINCT ON इस तरह की क्वेरी के लिए।

आप कुछ इस तरह लिखना चाहते हैं:

SELECT DISTINCT ON (anwendung.name) anwendung.name, autor.entwickler
FROM author 
left join anwendung on anwendung.name = autor.anwendung;

(वाक्यविन्यास अनुवर्ती टिप्पणी के आधार पर सही किया गया)

यह कुछ हद तक MySQL 5.7 के ANY_VALUE(...) . जैसा है group by . के लिए छद्म कार्य , लेकिन इसके विपरीत - यह कहता है कि distinct on . में मान खंड अद्वितीय होना चाहिए, और कोई भी मान कॉलम के लिए स्वीकार्य है नहीं निर्दिष्ट।

जब तक कोई ORDER BY न हो , इस बात की कोई गारंटी नहीं है कि किन मूल्यों का चयन किया जाता है। आपके पास आमतौर पर ORDER BY होना चाहिए पूर्वानुमेयता के लिए।

यह भी नोट किया गया है कि min() . जैसे समुच्चय का उपयोग करना या max() काम करेगा। हालांकि यह सच है - और DISTINCT ON का उपयोग करने के विपरीत, विश्वसनीय और पूर्वानुमेय परिणाम देगा। या एक अस्पष्ट GROUP BY - अतिरिक्त सॉर्टिंग या एकत्रीकरण की आवश्यकता के कारण इसकी प्रदर्शन लागत होती है, और यह केवल क्रमिक डेटा प्रकारों के लिए काम करती है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CONV () - MySQL में विभिन्न आधारों के बीच संख्याओं को परिवर्तित करें

  2. यूटीसी के रूप में बने रहने/लोड करने के लिए हाइबरनेट बल टाइमस्टैम्प

  3. चयनित कॉलम में संगत प्रकार नहीं है, यहां तक ​​कि इसका एक ही प्रकार है

  4. टैगिंग सिस्टम:Toxi समाधान प्रश्न

  5. INSERT के साथ एक अतिरिक्त कॉलम मान जोड़ना ... MySQL में चुनें