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

mysql:अधिकतम का चयन करें (स्कोर) प्रासंगिक पंक्ति डेटा वापस नहीं करता है

आप MAX का उपयोग कर रहे हैं , जो एक समग्र कार्य है। समूह के रूप में तालिका में एकाधिक पंक्तियों का इलाज करने का प्रभाव समग्र कार्यों का होता है। यदि आप कुछ विशेष नहीं करते हैं, तो संपूर्ण तालिका की सभी पंक्तियों का उपयोग एक बड़े समूह के रूप में किया जाएगा, और जब एक समग्र कार्य जैसे MAX वहाँ है, इन सभी पंक्तियों को केवल एक समग्र पंक्ति में संघनित किया जाएगा। वह संघनक प्रभाव अन्य समग्र कार्यों जैसे MIN . के लिए भी होता , SUM , GROUP_CONCAT और दोस्तों (देखें:http://dev. mysql.com/doc/refman/5.1/hi/group-by-functions.html ) आप GROUP BY . का उपयोग करके विशिष्ट समूहों को भी लागू कर सकते हैं निर्माण करें, लेकिन यदि आप समग्र फ़ंक्शन की घटना नहीं करते हैं, तो सभी पंक्तियों को एक पंक्ति में जोड़ दिया जाएगा (लेकिन यह बंचिंग-अप WHERE लागू करने के बाद होता है। शर्त, इसलिए केवल फ़िल्टर की गई पंक्तियों को एकत्रित किया जाता है)

अब, समग्र कार्यों के इस संघनक या 'कम करने' के प्रभाव के कारण, कई मूल्यों में से एक मान बनाने का कोई तरीका होना चाहिए। MAX . के लिए , यह तरीका है कि आप MAX के तर्क के रूप में पारित व्यंजक के सभी उदाहरणों के लिए मिले अधिकतम मान को ही सूचीबद्ध करें . लेकिन आपके अन्य कॉलम में ऐसा समग्र कार्य नहीं है। अधिकांश डेटाबेस उत्पादों के लिए, SELECT में गैर-समेकित और साथ ही एकत्रित कॉलम दोनों की उपस्थिति सूची एक त्रुटि होगी। लेकिन MySQL गलत/अलग तरीके से व्यवहार करता है और SELECT में सूचीबद्ध प्रत्येक गैर-एकीकृत अभिव्यक्ति के लिए उपलब्ध मानों में से केवल एक देता है अंश। कौन सा मान mysql तक है - आप किसी विशेष एल्गोरिथम पर भरोसा नहीं कर सकते।

कई मामलों में, लोग "जिस भी पंक्ति का अधिकतम मान हो" के साथ कुछ करना चाहते हैं, दूसरे शब्दों में, उस पंक्ति को ढूंढें जिसका मान अधिकतम मान के रूप में है, लेकिन उस पंक्ति के अन्य स्तंभों का उपयोग अलग-अलग करें। मिडपार्का द्वारा प्रदान किया गया समाधान ऐसा करता है, और इसे प्राप्त करने के अन्य तरीके भी हैं (MySQL समूह-वार अधिकतम के लिए Google)। समग्र कार्यों और संबंधित GROUP BY . के बारे में अधिक सामान्य जानकारी के लिए क्लॉज, आप -शेमलेस सेल्फप्लग- मेरा लेख यहां देख सकते हैं:http://rpbouman.blogspot.com/2007/05/debunking-group-by-myths.html



  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. MySQL एक ही तालिका में एक और पंक्ति मान के साथ एक पंक्ति अद्यतन करें

  3. उन सभी अभिलेखों की गणना करें जो अन्य तालिका में मौजूद नहीं हैं - SQL क्वेरी

  4. MySQLdb पैकेज कैसे स्थापित करें? (ImportError:setuptools नाम का कोई मॉड्यूल नहीं)

  5. php और mysql का उपयोग करके fpdf में सेल की चौड़ाई को ऑटो कैसे समायोजित करें?