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

कृपया sql में सेलेक्ट मैक्स (...) ... ग्रुप बाय की कार्यक्षमता की व्याख्या करें

MAX() . का उपयोग करने के मामले में GROUP BY क्लॉज अनिवार्य रूप से क्वेरी इंजन को बताता है कि अधिकतम निर्धारित करने के लिए वस्तुओं को कैसे समूहित किया जाए। अपने पहले उदाहरण में आप केवल एक कॉलम का चयन कर रहे थे, इसलिए समूहीकरण की कोई आवश्यकता नहीं थी। लेकिन आपके दूसरे उदाहरण में आपके पास कई कॉलम थे। इसलिए आपको क्वेरी इंजन को यह बताना होगा कि अधिकतम खोजने के लिए किन लोगों की तुलना की जाएगी।

आपने इसे id . द्वारा समूहबद्ध करने के लिए कहा था कॉलम। जिसका अर्थ है कि यह उन रिकॉर्ड्स की तुलना करने जा रहा है जिनके पास समान id है और आपको प्रत्येक अद्वितीय id . के लिए अधिकतम एक देता है . चूंकि हर रिकॉर्ड की एक अलग id होती है , आपने अनिवार्य रूप से उस खंड के साथ कुछ नहीं किया।

इसने सभी रिकॉर्ड को एक id . के साथ समूहीकृत किया का 1 (जो एक एकल रिकॉर्ड था), और अधिकतम id . के साथ रिकॉर्ड लौटाया उस समूह से (जो वह रिकॉर्ड था)। इसने 2 . के लिए भी ऐसा ही किया , 3 , आदि.

यहां दिखाए गए तीन स्तंभों के मामले में, आपके रिकॉर्ड को समूहीकृत करने का एकमात्र स्थान test_id होगा। कॉलम। कुछ इस तरह:

SELECT MAX(id), title, test_id
FROM images
WHERE image IS NOT null 
GROUP BY test_id

यह उन्हें test_id . द्वारा समूहीकृत करेगा , इसलिए परिणामों में रिकॉर्ड 6 शामिल होंगे (अधिकतम id test_id . के लिए 0), 4 (अधिकतम id test_id . के लिए 1), और 8 (अधिकतम id test_id . के लिए 2))। test_id . में तीन अद्वितीय मानों के आधार पर रिकॉर्ड्स को उन तीन समूहों में विभाजित करके कॉलम, यह प्रभावी रूप से "अधिकतम" 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. MySQL में फुल आउटर जॉइन कैसे करें?

  3. मावेरिक्स पर Django और mysql समस्याएं

  4. डेटा को दो बार कैसे ऑर्डर करें। लेकिन पहले आदेश को अप्रभावी बनायें

  5. एक MySQL एम्बेडेड डेटाबेस को SQL टेक्स्ट फ़ाइल में डंप करें