2011-09-15 28 views
29

मान लीजिए कि मेरे पास Tab1 विशेषताएँ हैं - a1, a2, ... आदि। कोई भी विशेषता अद्वितीय नहीं है।ग्रुप द्वारा काम कैसे किया जाता है?

निम्नलिखित क्वेरी की प्रकृति क्या होगी? क्या यह हमेशा एक पंक्ति को वापस कर देगा?

SELECT a1, a2, sum(a3) FROM Tab1 GROUP BY a1, a2 
+4

यह ए 1 और ए 2 के प्रति अद्वितीय संयोजन (या समूह) की एक पंक्ति वापस करेगा। यदि केवल एक अद्वितीय संयोजन है, तो आपको केवल एक पंक्ति मिलती है। –

+2

और योग आपको बताएगा कि प्रत्येक समूह में कितनी पंक्तियां समाप्त हुईं =) – jadarnel27

उत्तर

51

GROUP BYGROUP BY फ़ील्ड के प्रत्येक अद्वितीय संयोजन के लिए एक एकल पंक्ति देता है। तो आपके उदाहरण में,की पंक्तियों में (a1, a2) के प्रत्येक विशिष्ट संयोजन के परिणामस्वरूप फ़ील्ड मानों के अनुसार समूह के दिए गए संयोजन के साथ पंक्तियों के समूह का प्रतिनिधित्व करने वाली क्वेरी में एक पंक्ति में परिणाम होता है। प्रत्येक समूह के सदस्यों पर SUM() जैसे कुल कार्यों की गणना की जाती है।

13

GROUP BY रिटर्न GROUP BY खंड में क्षेत्रों में से प्रत्येक के अद्वितीय संयोजन के लिए एक पंक्ति। केवल एक पंक्ति सुनिश्चित करने के लिए, आपको क्लॉज के बिना एक समग्र फ़ंक्शन - COUNT, SUM, MAX का उपयोग करना होगा।

3

GROUP BY सभी समान रिकॉर्ड समूह।

SELECT COUNT(ItemID), City 
FROM Orders 
GROUP BY City; 

---------------------------------------- 
13 Sacrmento 
23 Dallas 
87 Los Angeles 
5 Phoenix 

आप City द्वारा समूह नहीं करते हैं यह सिर्फ ItemID की कुल संख्या प्रदर्शित होगी।

संबंधित मुद्दे