एसक्यूएल ग्रुप बाइ (GROUP BY) स्टेटमेंट
- पिछला पृष्ठ SQL sum()
- अगला पृष्ठ SQL Having
एकत्रीकरण फ़ंक्शन (जैसे SUM) GROUP BY व्याकरण को जोड़ने की आवश्यकता होती है。
GROUP BY व्याकरण
GROUP BY व्याकरण एकत्रीकरण फ़ंक्शनों को संयोजित करने के लिए उपयोग किया जाता है, जो एक या अनेक स्तम्भों के आधार पर परिणाम सेट को ग्रुप करता है。
SQL GROUP BY व्याकरण
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name
SQL GROUP BY उदाहरण
हम नीचे दिए "Orders" तालिका को रखते हैं:
O_Id | OrderDate | OrderPrice | Customer |
---|---|---|---|
1 | 2008/12/29 | 1000 | बुश |
2 | 2008/11/23 | 1600 | कार्टर |
3 | 2008/10/05 | 700 | बुश |
4 | 2008/09/28 | 300 | बुश |
5 | 2008/08/06 | 2000 | एडम्स |
6 | 2008/07/21 | 100 | कार्टर |
अब, हम चाहते हैं कि हमारे पास प्रत्येक ग्राहक का कुल राशि (कुल आर्डर) लूट जाए।
हम इसके लिए GROUP BY वाक्यांश का उपयोग करना चाहते हैं कि हम ग्राहकों को समूहबद्ध करें。
हम निम्नलिखित SQL वाक्यांश का प्रयोग करते हैं:
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer
परिणाम तालिका इस तरह है:
Customer | SUM(OrderPrice) |
---|---|
बुश | 2000 |
कार्टर | 1700 |
एडम्स | 2000 |
बहुत अच्छा, नहीं?
हम देखें अगर GROUP BY को छोड़ दिया जाए तो क्या होगा:
SELECT Customer,SUM(OrderPrice) FROM Orders
परिणाम तालिका इस तरह है:
Customer | SUM(OrderPrice) |
---|---|
बुश | 5700 |
कार्टर | 5700 |
बुश | 5700 |
बुश | 5700 |
एडम्स | 5700 |
कार्टर | 5700 |
यह परिणाम तालिका हमारे लिए नहीं है।
तो आउर सिर्फ उपरोक्त SELECT वाक्यांश का प्रयोग क्यों नहीं किया जा सकता? व्याख्या इस प्रकार: उपरोक्त SELECT वाक्यांश दो पद (Customer और SUM(OrderPrice)) निर्दिष्ट करता है।"SUM(OrderPrice)" एक अकेला मूल्य ("OrderPrice" पद का कुल) लौटाता है, जबकि "Customer" 6 मूल्य ("Orders" तालिका के प्रत्येक पंक्ति के लिए) लौटाता है।इसलिए हमें सही परिणाम नहीं मिलता।हालांकि, आपने देखा है, GROUP BY वाक्यांश इस समस्या को हल करता है。
GROUP BY एक से अधिक पद
हम एक से अधिक पदों पर GROUP BY वाक्यांश भी लगा सकते हैं, जैसे कि इस तरह:
SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders GROUP BY Customer,OrderDate
- पिछला पृष्ठ SQL sum()
- अगला पृष्ठ SQL Having