Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

GROUP BY लिस्ट में स्पष्ट सॉर्ट ऑर्डर (ASC/DESC) के साथ WITH ROLLUP का प्रभाव

जब GROUP BY लिस्ट में कॉलम नामों के साथ स्पष्ट सॉर्ट ऑर्डर (ASC या DESC) और WITH ROLLUP मॉडिफायर दोनों उपयोग किए जाते हैं, तो ROLLUP द्वारा जोड़ी गई सारांश पंक्तियां उन पंक्तियों के बाद ही दिखाई देती हैं जिनसे वे गणना की गई हैं, भले ही सॉर्ट ऑर्डर कुछ भी हो।

डिफ़ॉल्ट (कोई स्पष्ट सॉर्ट नहीं - ASC माना जाता है):

mysql> Select sr, SUM(Price) AS Price from ratelist Group by sr with rollup;
+-----+-------+
| sr  | Price |
+-----+-------+
| 1   |  502  |
| 2   |  630  |
| 3   | 1005  |
| 4   |  850  |
| 5   |  250  |
|NULL |  3237 |
+-----+-------+

स्पष्ट DESC सॉर्ट ऑर्डर के साथ:

mysql> Select sr, SUM(Price) AS Price from ratelist Group by sr DESC with rollup;
+-----+-------+
| sr  | Price |
+-----+-------+
| 5   |  250  |
| 4   |  850  |
| 3   | 1005  |
| 2   |  630  |
| 1   |  502  |
|NULL |  3237 |

अवलोकन: डेटा पंक्तियां DESC क्रम में हैं (5,4,3,2,1), लेकिन सारांश पंक्ति (NULL) अभी भी अंत में है - उन पंक्तियों के बाद जिनसे यह गणना की गई है।

कारण: WITH ROLLUP सारांश पंक्तियों को उनके संबंधित समूह के तुरंत बाद रखता है। चूंकि ग्रैंड टोटल पूरे परिणाम सेट का सारांश है, यह हमेशा अंत में आता है, GROUP BY ... DESC के बावजूद।

मल्टी-कॉलम GROUP BY में:

GROUP BY year DESC, quarter DESC WITH ROLLUP

यहां प्रत्येक वर्ष का सबटोटल उस वर्ष की तिमाहियों के बाद आएगा, और ग्रैंड टोटल अंत में।

निष्कर्ष: WITH ROLLUP का अपना आंतरिक क्रम तर्क होता है जो GROUP BY सॉर्ट ऑर्डर को ओवरराइड करता है सारांश पंक्तियों के स्थान के लिए।

  1. - MySQL में टेबल के कॉलम नाम प्राप्त करने का सिंटैक्स

    information_schema.columns को क्वेरी करके किसी टेबल के सभी कॉलम नाम प्राप्त करें। सिंटैक्स SELECT column_name FROM information_schema.columns WHERE table_schema = yourDatabaseName AND table_name = yourTableName; नमूना टेबल बनाना CREATE TABLE DemoTable ( EmployeeId INT, EmployeeFirstName V

  1. - MySQL में केवल विशिष्ट रिकॉर्ड की सूची को ASC क्रम में प्रदर्शित करें

    समाधान ORDER BY CASE स्टेटमेंट का उपयोग करके कस्टम क्रम लागू करें। उदाहरण टेबल बनाएं: INSERT INTO DemoTable2039 VALUES (John Doe), (John Smith), (Chris Brown), (Adam Smith), (David Miller); कस्टम क्रम क्वेरी Smith वाले नामों को अंत में रखें, फिर वर्णानुक्रम क्रम: ORDER BY CASE WHEN Name LIKE %Sm

  1. - C# में इंटरफेस में स्पष्ट कार्यान्वयन क्या है और कब उपयोग करें?

    यदि कोई क्लास दो इंटरफेस को लागू करती है जिनमें समान सिग्नेचर वाला सदस्य होता है, तो उस सदस्य को क्लास पर लागू करने से दोनों इंटरफेस उस सदस्य को अपने कार्यान्वयन के रूप में उपयोग करेंगे। इंटरफेस सदस्य को स्पष्ट रूप से लागू करना संभव है - एक क्लास सदस्य बनाना जो केवल इंटरफेस के माध्यम से बुलाया जाता