Database
 sql >> डेटाबेस >  >> RDS >> Database

SQL में दो कॉलम द्वारा समूह कैसे करें

समस्या:

आप अपने डेटा को दो स्तंभों के आधार पर समूहित करना चाहते हैं ताकि आप कुछ आँकड़ों की गणना कर सकें।

उदाहरण:

order तालिका, आपके पास कॉलम हैं order_date , product_id , customer_id , और number . आप प्रत्येक ग्राहक द्वारा प्रतिदिन खरीदे गए उत्पादों की संख्या गिनना चाहेंगे।

order तालिका इस तरह दिखती है:

<वें शैली="पृष्ठभूमि-रंग:#cecece">संख्या
order_date product_id customer_id
2020-11-25 7 1 1
2020-11-25 12 1 3
2020-11-26 53 1 2
2020-11-26 1 2 4
2020-11-26 3 2 1
2020-11-26 16 2 7
2020-11-26 3 3 2
2020-11-27 6 3 1

समाधान:

SELECT
  order_date,
  customer_id,
  SUM(number) AS products_number
FROM order

नतीजा यह है:

order_date customer_id products_number
2020-11-26 3 2
2020-11-27 3 1
2020-11-26 2 12
2020-11-25 1 4
2020-11-26 1 2

चर्चा:

दो स्तंभों के आधार पर समूह बनाने के लिए, बस GROUP BY use का उपयोग करें दो स्तंभों के साथ। कॉलम नामों को GROUP BY . के बाद सूचीबद्ध किया जाना चाहिए कीवर्ड और अल्पविराम द्वारा अलग किया गया। दोनों स्तंभों के मूल्यों के आधार पर समूह बनाए जाएंगे; मानों के प्रत्येक जोड़े के लिए, एक अलग समूह बनाया जाता है (उदा. ('2020-11-25', 1) ) नीचे दी गई तालिका को देखें, जहां प्रत्येक समूह को एक अलग रंग में प्रस्तुत किया गया है:

<वें शैली="पृष्ठभूमि-रंग:#cecece">संख्या
order_date customer_id product_id
2020-11-25 1 7 1
2020-11-25 1 12 3
2020-11-26 1 53 2
2020-11-26 2 1 4
2020-11-26 2 3 1
2020-11-26 2 16 7
2020-11-26 3 3 2
2020-11-27 3 6 1

अगर एक या दोनों कॉलम में NULL है मान, इन मानों को एक अलग समूह के रूप में माना जाता है (उदा., ('2020-11-26', NULL) , (NULL, 5) या (NULL, NULL) )।

दूसरी ओर, यदि NULLs हैं तो एक कॉलम में जिस पर हम एक समग्र कार्य लागू करते हैं, NULL मूल्यों को बस छोड़ दिया जाता है। (इस उदाहरण में, समग्र कार्य है SUM() और कॉलम number है ) यदि हमारे पास संख्या मान थे 2 , 1 , और नल समूहों में से एक के लिए, SUM(number) बराबर होगा 3 (2 और 1 एक साथ जोड़े जाते हैं, और NULL छोड़ा गया है।)

इसी तरह, आप किसी भी संख्या में कॉलम के आधार पर समूह बना सकते हैं - बस GROUP BY में कॉलम के नाम लिखें। खंड और उन्हें अल्पविराम से अलग करें।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CentOS 7 पर सामान्य पोस्टग्रेज कार्य

  2. डेटा मॉडल

  3. जाँच कर रहा है कि क्या गैर-LOB कॉलम को अद्यतन करने की आवश्यकता है

  4. SQL में किसी अन्य तालिका से एक तालिका कैसे बनाएं

  5. उत्पादन भंडार से परीक्षण वातावरण बनाना