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

ORDER BY क्लॉज में एक समग्र कार्य क्या कर सकता है?

यदि आप वास्तव में तालिका से स्तंभों के बजाय समग्र मानों का चयन करते हैं तो आपके परिणाम अधिक स्पष्ट होते हैं:

SELECT SUM(id) FROM plant ORDER BY SUM(id)

यह सभी आईडी का योग वापस कर देगा। यह निश्चित रूप से एक बेकार उदाहरण है क्योंकि एकत्रीकरण हमेशा केवल एक पंक्ति बनाएगा, इसलिए आदेश देने की कोई आवश्यकता नहीं है। आपकी क्वेरी में क्यूथ कॉलम की एक पंक्ति प्राप्त करने का कारण यह है कि MySQL एक पंक्ति को चुनता है, यादृच्छिक पर नहीं बल्कि नियतात्मक भी नहीं। ऐसा ही होता है कि यह आपके मामले में तालिका में पहला कॉलम है, लेकिन दूसरों को स्टोरेज इंजन, प्राथमिक कुंजी आदि के आधार पर एक और पंक्ति मिल सकती है। इस प्रकार केवल ORDER BY क्लॉज में एकत्रीकरण बहुत उपयोगी नहीं है।

आप आमतौर पर जो करना चाहते हैं वह एक निश्चित फ़ील्ड द्वारा समूहीकृत करना है और फिर परिणाम को किसी तरह से सेट करना है:

SELECT fruit, COUNT(*)
FROM plant
GROUP BY fruit
ORDER BY COUNT(*)

अब यह एक और दिलचस्प सवाल है! इससे आपको प्रत्येक फल के लिए एक पंक्ति और उस फल की कुल संख्या मिल जाएगी। कुछ और सेब जोड़ने का प्रयास करें और ऑर्डरिंग वास्तव में समझ में आने लगेगी:

पूरी तालिका:

+----+--------+
| id | fruit  |
+----+--------+
|  1 | banana |
|  2 | apple  |
|  3 | orange |
|  4 | apple  |
|  5 | apple  |
|  6 | banana |
+----+--------+

ऊपर की क्वेरी:

+--------+----------+
| fruit  | COUNT(*) |
+--------+----------+
| orange |        1 |
| banana |        2 |
| apple  |        3 |
+--------+----------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक सरणी के कम से कम एक तत्व वाले परिणाम प्राप्त करने के लिए Laravel क्वेरी?

  2. SQL तालिका नहीं बना सकता (त्रुटि:150)

  3. लूप में MySQL क्वेरी बनाम SQL जॉइन का उपयोग करना

  4. क्या मुझे MySQL लगातार कनेक्ट का उपयोग करना चाहिए?

  5. Passport, Redis और MySQL का उपयोग करके Node.js में सत्रों का प्रबंधन कैसे करें