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

एसक्यूएल में ग्रुप सम द्वारा पंक्तियों को कैसे ऑर्डर करें

समस्या:

आप रिकॉर्ड के समूह द्वारा उत्पन्न राशि के आधार पर पंक्तियों को क्रमित करना चाहते हैं।

उदाहरण:

हमारे डेटाबेस में training चार कॉलम में डेटा के साथ:id , लॉगिन , वर्ष , और स्कोर

आईडी लॉगिन वर्ष स्कोर
1 एंडी 2018 24
2 लुसी 2019 25
3 एंडी 2019 20
4 लुसी 2018 16
5 गैरी 2019 18
6 गैरी 2018 19
7 गैरी 2017 22
8 लुसी 2017 21
9 एंडी 2017 26

आइए खिलाड़ियों के कुल स्कोर के अनुसार रिकॉर्ड को अवरोही क्रम में रखते हुए, सभी वर्षों में कुल स्कोर के साथ प्रत्येक खिलाड़ी का लॉगिन नाम प्राप्त करें।

समाधान:

हम कुल फ़ंक्शन SUM() के आधार पर रिकॉर्ड ऑर्डर करने के लिए ORDER BY ऑपरेटर का उपयोग करेंगे , जो सभी वर्षों में प्रत्येक खिलाड़ी के लिए कुल स्कोर की गणना करता है।

यहां वह प्रश्न है जो आप लिखेंगे:

SELECT login,
  SUM(score) AS total_score
FROM training
GROUP BY login
ORDER BY SUM(score) DESC;

ये रहा परिणाम:

लॉगिन कुल_स्कोर
एंडी 70
लुसी 62
गैरी 59

चर्चा:

यदि आप SUM() जैसे समग्र फ़ंक्शन द्वारा लौटाए गए मान के अनुसार पंक्तियों को ऑर्डर करना चाहते हैं, तो ORDER BY का उपयोग करें . ORDER BY ऑपरेटर के बाद एग्रीगेट फंक्शन आता है (हमारे उदाहरण में, SUM() ) DESC को इस फ़ंक्शन के बाद अवरोही क्रम को निर्दिष्ट करने के लिए रखा गया है। इस प्रकार, उच्चतम समग्र मान पहले प्रदर्शित होते हैं, फिर उत्तरोत्तर निम्न मान प्रदर्शित होते हैं। आरोही क्रम में क्रमबद्ध करने के लिए, आप ASC निर्दिष्ट कर सकते हैं या किसी भी कीवर्ड को छोड़ सकते हैं, क्योंकि आरोही डिफ़ॉल्ट सॉर्ट क्रम है।

उपरोक्त प्रश्न में, हम प्रत्येक खिलाड़ी के लॉगिन और सभी वर्षों के लिए उनके स्कोर का योग चुनते हैं। इस कुल स्कोर की गणना एक तर्क के रूप में स्कोर कॉलम के साथ SUM () का उपयोग करके की जाती है। हम इस समग्र मान के लिए एक उपनाम जोड़ते हैं (SUM(score) AS total_score ); आप ORDER BY क्लॉज (ORDER BY total_score DESC में एग्रीगेट फ़ंक्शन के बजाय इस उपनाम का इस्तेमाल कर सकते हैं )।

ध्यान दें कि हम लॉगिन . शामिल करते हैं ग्रुप बाय में। यदि हम SELECT में एक कॉलम शामिल करते हैं, तो हमें GROUP BY में भी कॉलम का उपयोग करना चाहिए। इस उदाहरण में, हम कॉलम लॉगिन के बाद ग्रुप बाय क्लॉज का उपयोग करते हैं क्योंकि हम इस कॉलम को सेलेक्ट में रखते हैं। ध्यान दें कि GROUP BY को क्वेरी में ORDER 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. क्लाउड साइट्स में डेटाबेस बनाना

  2. Django 1.6 . के साथ लेनदेन प्रबंधन

  3. स्रोत नियंत्रण से डेटाबेस परिनियोजित करना

  4. निष्पादन योजनाओं में पंक्ति लक्ष्य निर्धारित करना और उनकी पहचान करना

  5. बीसीपी उपयोगिता के साथ फ्लैट फ़ाइल में डेटा कैसे निर्यात करें और बल्क इंसर्ट के साथ डेटा आयात करें