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

PostgreSQL GROUP BY MySQL से अलग है?

MySQL का पूरी तरह से गैर मानक अनुपालन GROUP BY Postgres' DISTINCT ON . द्वारा अनुकरण किया जा सकता है . इस पर विचार करें:

MySQL:

SELECT a,b,c,d,e FROM table GROUP BY a

यह a . के प्रति मान 1 पंक्ति प्रदान करता है (कौन सा, आप वास्तव में नहीं जानते)। वास्तव में आप अनुमान लगा सकते हैं, क्योंकि MySQL हैश एग्रीगेट के बारे में नहीं जानता है, इसलिए यह शायद एक प्रकार का उपयोग करेगा ... लेकिन यह केवल a पर सॉर्ट करेगा , इसलिए पंक्तियों का क्रम यादृच्छिक हो सकता है। जब तक यह छँटाई के बजाय एक बहु-स्तंभ अनुक्रमणिका का उपयोग नहीं करता है। खैर, वैसे भी, यह क्वेरी द्वारा निर्दिष्ट नहीं है।

पोस्टग्रेज:

SELECT DISTINCT ON (a) a,b,c,d,e FROM table ORDER BY a,b,c

यह a . के प्रति मान 1 पंक्ति प्रदान करता है , यह पंक्ति ORDER BY . के अनुसार क्रम में पहली होगी क्वेरी द्वारा निर्दिष्ट। सरल।

ध्यान दें कि यहां, यह कुल नहीं है जिसकी मैं गणना कर रहा हूं। तो GROUP BY वास्तव में कोई मतलब नहीं है। DISTINCT ON बहुत अधिक समझ में आता है।

रेल ने MySQL से शादी की है, इसलिए मुझे आश्चर्य नहीं है कि यह SQL उत्पन्न करता है जो पोस्टग्रेज में काम नहीं करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में हर घंटे के लिए डेटा कैसे प्राप्त करें

  2. इकाई-विशेषता-मूल्य तालिका डिजाइन

  3. PHP कोड के भीतर से एक MySQL संग्रहीत प्रक्रिया को कैसे कॉल करें?

  4. क्या मैं एक चयन क्वेरी में परिकलित फ़ील्ड का पुन:उपयोग कर सकता हूं?

  5. LOAD DATA INFILE का उपयोग करके MySQL तालिका में आयात करते समय CSV फ़ाइल में कॉलम कैसे छोड़ें?