sql - एकाधिक कॉलम पर समूह का उपयोग करना




group-by (2)

ग्रुप बाय क्लॉज का उपयोग एक या अधिक स्तंभों द्वारा परिणाम-सेट को समूहबद्ध करने के लिए कुल कार्यों के संयोजन के साथ किया जाता है। उदाहरण के लिए:

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

इस आदेश को याद रखें:

1) चयन करें (डेटाबेस से डेटा का चयन करने के लिए प्रयोग किया जाता है)

2) से (खंडों को तालिकाओं को सूचीबद्ध करने के लिए प्रयोग किया जाता है)

3) कहां (रिकॉर्ड को रिकॉर्ड करने के लिए क्लॉज का उपयोग किया जाता है)

4) ग्रुप बाय (खंड को एकाधिक रिकॉर्ड्स में डेटा एकत्र करने के लिए एक चयन कथन में उपयोग किया जा सकता है और परिणामों को एक या अधिक कॉलम द्वारा समूहित किया जा सकता है)

5) हैविंग (खंड का उपयोग ग्रुप बाय क्लॉज के साथ संयोजन में किया जाता है ताकि लौटाई गई पंक्तियों के समूह को केवल उन लोगों तक सीमित किया जा सके जिनकी स्थिति सही है)

6) द्वारा आदेश (कीवर्ड का उपयोग परिणाम सेट को सॉर्ट करने के लिए किया जाता है)

यदि आप कुल कार्यों का उपयोग कर रहे हैं, तो आप इन सभी का उपयोग कर सकते हैं, और यह वह आदेश है जिसे उन्हें सेट किया जाना चाहिए, अन्यथा आपको एक त्रुटि मिल सकती है।

कुल कार्य हैं:

MIN किसी दिए गए कॉलम में सबसे छोटा मान देता है

एसयूएम किसी दिए गए कॉलम में संख्यात्मक मानों का योग देता है

एवीजी किसी दिए गए कॉलम का औसत मान देता है

COUNT किसी दिए गए कॉलम में मानों की कुल संख्या देता है

COUNT (*) तालिका में पंक्तियों की संख्या देता है

मैं GROUP BY x के बिंदु को समझता हूं

लेकिन GROUP BY x, y काम, और इसका क्या मतलब है GROUP BY x, y करता है?


Group By X अर्थ है उन सभी को एक समूह में एक्स के लिए समान मान के साथ रखें

Group By X, Y अर्थ है उन सभी को एक समूह में एक्स और वाई दोनों के लिए समान मूल्यों के साथ रखें

एक उदाहरण का उपयोग करने के लिए उदाहरण के लिए, मान लीजिए कि हमारे पास निम्न तालिका है, जो विश्वविद्यालय में किस विषय में भाग ले रहा है:

Table: Subject_Selection

Subject   Semester   Attendee
---------------------------------
ITB001    1          John
ITB001    1          Bob
ITB001    1          Mickey
ITB001    2          Jenny
ITB001    2          James
MKB114    1          John
MKB114    1          Erica

जब आप केवल group by कॉलम पर group by उपयोग करते हैं; कहते हैं:

select Subject, Count(*)
from Subject_Selection
group by Subject

आपको कुछ मिल जाएगा:

Subject    Count
------------------------------
ITB001     5
MKB114     2

... क्योंकि आईटीबी 001 के लिए 5 प्रविष्टियां हैं, और 2 एमकेबी 114 के लिए हैं

अगर हम दो स्तंभों से group by करना चाहते थे:

select Subject, Semester, Count(*)
from Subject_Selection
group by Subject, Semester

हम यह प्राप्त करेंगे:

Subject    Semester   Count
------------------------------
ITB001     1          3
ITB001     2          2
MKB114     1          2

ऐसा इसलिए है क्योंकि, जब हम दो स्तंभों से समूह करते हैं, तो यह कह रहा है "उन्हें समूहित करें ताकि एक ही विषय और सेमेस्टर वाले सभी एक ही समूह में हों, और उसके बाद सभी समेकित कार्यों की गणना करें (गणना, योग, औसत इत्यादि। ) उन समूहों में से प्रत्येक के लिए " । इस उदाहरण में, यह इस तथ्य से प्रदर्शित होता है कि, जब हम उन्हें गिनते हैं, तो तीन लोग सेमेस्टर 1 में आईटीबी 001 कर रहे हैं, और दो इसे सेमेस्टर में कर रहे हैं 2. एमकेबी 114 कर रहे दोनों लोग सेमेस्टर 1 में हैं, इसलिए कोई नहीं है सेमेस्टर 2 के लिए पंक्ति (कोई डेटा समूह "एमकेबी 114, सेमेस्टर 2" में फिट बैठता है)

उम्मीद है कि समझ में आता है।





group-by