एसक्यूएल में दो क्षेत्रों और गिनती पर समूह का उपयोग करना


85

मेरे पास mysql db में एक टेबल है जिसमें दो कॉलम हैं: समूह और उपसमूह। निचे देखो।

 group, subGroup
 grp-A, sub-A
 grp-A, sub-A
 grp-A, sub-B      
 grp-B, sub-A
 grp-B, sub-B
 grp-B, sub-B

मैं प्रत्येक अद्वितीय युगल समूह / उपसमूह के लिए रिकॉर्ड की संख्या प्राप्त करने की कोशिश कर रहा हूं।

यह वही है जो मुझे उम्मीद है:

group, subGroup, count
grp-A, sub-A, 2
grp-A, sub-B, 1
grp-B, sub-A, 1
grp-B, sub-B, 2

कुछ पदों को पढ़ने के बाद, मैंने समूह, गणना () का उपयोग करके कई sql प्रश्नों की कोशिश की, लेकिन मैं अपेक्षित परिणाम प्राप्त करने का प्रबंधन नहीं करता। मैं इसे कैसे ठीक करूं?


2
मैं एक और मामला चाहता था, प्रत्येक समूह के लिए शक्करपारों की गिनती इसलिए यह एक प्रश्न का चयन करें a, b, COUNT (अलग-अलग b) से tbl
Group

जवाबों:


139

मुझे लगता है कि आप देख रहे हैं: SELECT a, b, COUNT(a) FROM tbl GROUP BY a, b


1
हेलो कॉर्बिन। आपका बहुत बहुत धन्यवाद। यह काम कर रहा है। मैंने वो किया जो आप सुझा रहे हैं लेकिन a, b के द्वारा समूह का समूह बनाकर b और a का समूह बना दिया। धन्यवाद फिर से
मार्क

3
a and bMySQL के लिए एक कथन की तरह दिखता है (वास्तव में यकीन नहीं है कि यह एक सिंटैक्स त्रुटि होगी या यदि यह 0 या 1 रिटर्न पर समूह करेगा - मैं एक सिंटैक्स त्रुटि मानूँगा, विशेष रूप से varchar फ़ील्ड के लिए)। कई स्तंभों पर समूह बनाने के लिए, आप सिर्फ एक अल्पविराम का उपयोग करें।
कॉर्बिन

1
बहुत बहुत धन्यवाद!! .. मेरे साथ मुद्दा यह था कि मैं अपने सवाल का मुहावरा नहीं दे पा रहा था और आखिरकार गुगली करने में बहुत समय बिताया और आखिरकार एक सरल और डॉट समाधान के लिए यहाँ उतरा।
फहीम फरहान

गिनती के बजाय मुझे पूरे रिकॉर्ड विवरण की आवश्यकता थी। उदाहरण के लिए, grpA के 2 उपसमूह हैं: सबा और सबबी, इसलिए मुझे प्रत्येक उपसमूहों के लिए पूरे रिकॉर्ड को पुनः प्राप्त करने की आवश्यकता है। क्या कोई मेरी मदद कर सकता हैं। @ कोर्बिन
व्यवस्थापक 7798

2
मैं प्रत्येक समूह के लिए शर्करा की गिनती चाहता था, इसलिए यह एक का चयन करें, बी, COUNT (अलग बी) से एक समूह से
luky

8
SELECT group,subGroup,COUNT(*) FROM tablename GROUP BY group,subgroup

गिनती के बजाय मुझे पूरे रिकॉर्ड विवरण की आवश्यकता थी। उदाहरण के लिए, grpA के 2 उपसमूह हैं: सबा और सबबी, इसलिए मुझे प्रत्येक उपसमूहों के लिए पूरे रिकॉर्ड को पुनः प्राप्त करने की आवश्यकता है। क्या कोई मेरी मदद कर सकता हैं। @ user1127214
व्यवस्थापक 7798

7

आपको स्तंभ, समूह और उप-समूह दोनों को समूहित करना होगा, फिर समुच्चय फ़ंक्शन का उपयोग करना होगा COUNT()

SELECT
  group, subgroup, COUNT(*)
FROM
  groups
GROUP BY
  group, subgroup

1
मेरे लिए एक टाइपो लगता है समूह! =
समूहनाम

गिनती के बजाय मुझे पूरे रिकॉर्ड विवरण की आवश्यकता थी। उदाहरण के लिए, grpA के 2 उपसमूह हैं: सबा और सबबी, इसलिए मुझे प्रत्येक उपसमूहों के लिए पूरे रिकॉर्ड को पुनः प्राप्त करने की आवश्यकता है। क्या कोई मेरी मदद कर सकता हैं। @ फरजाने
व्यवस्थापक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.