एकाधिक स्तंभों पर समूह का उपयोग करना


1035

की बात समझ में आई GROUP BY x

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


2
आप इसे इस प्रश्न के रूप में वर्णित नहीं पाएंगे। ग्रुप BY क्लॉज एक या अधिक फ़ील्ड ले सकता है। ग्राहक द्वारा ग्रुप; अंतिम नाम से ग्रुप, Firstname; ग्रुप बाय ईयर, स्टोर, स्कू आदि
बिल

जवाबों:


2025

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

Group By X, Yका अर्थ है उन सभी को एक ही समूह में 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केवल विषय स्तंभ पर उपयोग करते हैं ; कहते हैं:

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

आपको कुछ ऐसा मिलेगा:

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

... क्योंकि ITB001 के लिए 5 प्रविष्टियाँ हैं, और MKB114 के लिए 2

यदि हम 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 में ITB001 करने वाले तीन लोग होते हैं , और दो इसे सेमेस्टर 2 में करते हैं। MKB114 करने वाले दोनों लोग 1 सेमेस्टर में हैं, इसलिए कोई नहीं है सेमेस्टर 2 के लिए पंक्ति (कोई डेटा समूह "MKB114, सेमेस्टर 2" में फिट नहीं है)

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


11
@ शमाश्री: तो क्या इसका मतलब यह भी है कि GROUP BY A,Bजैसा है वैसा ही है GROUP BY B,A?
अछूतादित्य

23
हाँ यह करता है। मैं निश्चित रूप से नहीं कह सकता कि क्या वे एक दूसरे के समान कुशल हैं, लेकिन वे एक ही परिणाम देंगे, हाँ।
स्मैशरी

2
यहां जोड़ा जाना चाहिए कि दूसरे के बीच अंतर है GROUP BY a, bऔर GROUP BY a AND bदूसरे के बाद से केवल एक ही सामग्री के साथ समूहीकृत वस्तुओं को सूचीबद्ध करता है और कोई "अंडरग्राउंड" नहीं है। इस मामले में आउटपुट पहले वाले की तरह ही होगा।
द्विज

5
मैं यह जोड़ना चाहूंगा कि कॉलम द्वारा आप जिस क्रम में समूह बनाते हैं वह कोई मायने नहीं रखता। उपर्युक्त उदाहरण समूह में सेमेस्टर द्वारा, विषय ने एक ही परिणाम दिया होगा
user2441441

2
ठीक है, समूह, a, b और समूह द्वारा b, एक ही परिणाम वापस नहीं करते हैं - पंक्तियों को एक अलग क्रम में प्रदर्शित किया जाता है
fanny

33

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

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

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

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

2) FROM (क्लॉज का उपयोग टेबल को सूचीबद्ध करने के लिए किया जाता है)

3) जहां (क्लॉज का इस्तेमाल रिकॉर्ड्स को फिल्टर करने के लिए किया जाता है)

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

5) HAVING (क्लॉज का उपयोग ग्रुप BY क्लॉज के संयोजन में किया जाता है, केवल उन पंक्तियों के समूहों को प्रतिबंधित करने के लिए जिनकी स्थिति TRUE है)

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

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

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

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

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

AVG किसी दिए गए कॉलम का औसत मान लौटाता है

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

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


1
लेकिन हम 2 कॉलम कहां रखते हैं, 2 / अधिक कॉलम के आधार पर कैसे एकत्रित करें यह सवाल है
चैतन्य बापट

हाय चैतन्य, मुझे नहीं पता कि यह आप क्या पूछ रहे हैं लेकिन मैं आपको केवल कुछ उदाहरण देता हूं। यदि आपके पास एक उत्पाद तालिका है, तो आप इस प्रकार कुल कार्यों का उपयोग करते हैं, नीचे दो परिदृश्य हैं: उत्पादों का चयन करें (उदाहरण के लिए); यह उत्पादों की तालिका के स्टॉक में औसत इकाइयों की गणना करेगा। अब आप उत्पाद श्रेणी के अनुसार स्टॉक में इकाइयों की गणना करना चाहते हैं, आपको ग्रुप बाय एवीजी के साथ एवीजी फ़ंक्शन का उपयोग इस तरह करना होगा: सेलेक्ट कैटिगरी, एवीजी (इंस्टॉक) फ्रॉम प्रॉडक्ट्स बाय कैटिगरी;
एस। मयोल

यह भी दूर से इस सवाल का जवाब नहीं देता है ... यहां सवाल यह है कि एक ही समय में "विषय" और "सेमेस्टर" के "जंजीर समूह" को कैसे प्राप्त किया जाए, जैसा कि दिए गए उदाहरण में बताया गया है ...
MahNas92
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.