आप एकाधिक कॉलम द्वारा ग्रुप करने के लिए IF() का उपयोग कर सकते हैं। अवधारणा को समझने के लिए, आइए एक तालिका बनाएं। तालिका बनाने की क्वेरी इस प्रकार है
mysql> टेबल बनाएं MultipleGroupByDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> CustomerId int, -> ProductName varchar(100) -> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.59 सेकंड)
इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें। क्वेरी इस प्रकार है -
mysql> एकाधिक ग्रुपबायडेमो (ग्राहक आईडी, उत्पाद नाम) मान (1000, 'उत्पाद -1') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.20 सेकंड) MySQL> एकाधिक समूहबायडेमो (ग्राहक आईडी, उत्पाद नाम) मानों में डालें (1001, 'उत्पाद') -2'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.18 सेकंड) mysql> एकाधिक समूहबायडेमो (ग्राहक आईडी, उत्पाद नाम) मान (1001, 'उत्पाद -2') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.16 सेकेंड) MySQL> में डालें एकाधिक समूहबायडेमो (ग्राहक आईडी, उत्पाद नाम) मान (1001, 'उत्पाद -2'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.12 सेकंड) mysql> एकाधिक समूहबायडेमो (ग्राहक आईडी, उत्पाद नाम) मानों में डालें (1002, 'उत्पाद -3'); क्वेरी ठीक है , 1 पंक्ति प्रभावित (0.09 सेकंड) mysql> एकाधिक समूहबायडेमो (ग्राहक आईडी, उत्पाद नाम) मान (1002, 'उत्पाद -3') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.15 सेकेंड) MySQL> एकाधिक समूहबायडेमो (ग्राहक आईडी, उत्पाद नाम) मानों में डालें (1003,'उत्पाद-4');क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.16 सेकंड)
चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें। क्वेरी इस प्रकार है -
mysql> MultiGroupByDemo से *चुनें;
आउटपुट इस प्रकार है
+-----+---------------+---------------+| आईडी | ग्राहक आईडी | उत्पाद का नाम |+----+---------------+-------------+| 1 | 1000 | उत्पाद-1 || 2 | 1001 | उत्पाद-2 || 3 | 1001 | उत्पाद-2 || 4 | 1001 | उत्पाद-2 || 5 | 1002 | उत्पाद-3 || 6 | 1002 | उत्पाद-3 || 7 | 1003 | उत्पाद-4 |+----+------------+------------+7 पंक्तियाँ सेट में (0.00 सेकंड)
यहाँ एक से अधिक स्तंभों के आधार पर समूह की क्वेरी है
mysql> ग्राहक आईडी चुनें, अगर (उत्पाद नाम ='उत्पाद -2', 1, 0) -> एकाधिक समूहबायडेमो से -> उत्पाद नाम से समूह, ग्राहक आईडी;
निम्न आउटपुट है
<पूर्व>+---------------+-------------------------------- ------+| ग्राहक आईडी | अगर (उत्पाद का नाम ='उत्पाद -2', 1, 0) |+---------------+--------------------- -------------------+| 1000 | 0 || 1001 | 1 || 1002 | 0 || 1003 | 0 |+---------------+------------------------------------------------ -----+4 पंक्तियाँ सेट में (0.00 सेकंड)यहां एक वैकल्पिक क्वेरी है
mysql> CustomerId द्वारा एकाधिकGroupByDemo समूह से CustomerId,MAX(IF(ProductName ='Product-2', 1,0)) चुनें;
निम्न आउटपुट है
<पूर्व>+---------------+-------------------------------- --------+| ग्राहक आईडी | MAX(IF(ProductName ='Product-2', 1,0)) |+---------------+--------------------- -----------------------+| 1000 | 0 || 1001 | 1 || 1002 | 0 || 1003 | 0 |+---------------+------------------------------------------------ --------+4 पंक्तियाँ सेट में (0.00 सेकंड)