कई बार, आपको योग के साथ-साथ MySQL तालिका में डेटा की रिपोर्ट करने की आवश्यकता होती है। UNION ALL और ROLLUP का उपयोग करके MySQL में कुल पंक्ति जोड़ने के 2 तरीके हैं। यहाँ MySQL में कुल पंक्ति जोड़ने का तरीका बताया गया है।
MySQL में कुल रो कैसे जोड़ें
यहाँ MySQL में कुल पंक्ति जोड़ने के चरण दिए गए हैं। मान लें कि आपके पास निम्न तालिका बिक्री (order_date, बिक्री) है।
mysql> create table sales(order_date date,sale int); mysql> insert into sales values('2020-01-01',20), ('2020-01-02',25),('2020-01-03',15),('2020-01-04',30), ('2020-02-05',20),('2020-02-10',20),('2020-02-06',25), ('2020-03-07',15),('2020-03-08',30),('2020-03-09',20); mysql> select * from sales; +------------+------+ | order_date | sale | +------------+------+ | 2020-01-01 | 20 | | 2020-01-02 | 25 | | 2020-01-03 | 15 | | 2020-01-04 | 30 | | 2020-02-05 | 20 | | 2020-02-10 | 20 | | 2020-02-06 | 25 | | 2020-03-07 | 15 | | 2020-03-08 | 30 | | 2020-03-09 | 20 | +------------+------+
हम MySQL में कुल पंक्ति जोड़ने के 2 तरीके देखेंगे - UNION ALL और ROLLUP का उपयोग करना। ROLLUP फ़ंक्शन संभवतः संस्करण 5.0 से MySQL में जोड़ा गया था। इसलिए पुराने संस्करणों के साथ काम करने वालों को UNION ALL का उपयोग करना होगा।
यूनियन ऑल का उपयोग करना
इस दृष्टिकोण में, हम डेटा को SUM करते हैं और इसे नीचे दिखाए गए अनुसार UNION ALL क्लॉज का उपयोग करके अपनी मूल तालिका में जोड़ देते हैं
mysql> select * from sales UNION ALL select 'Total' order_date,sum(sale) from sales; +------------+------+ | order_date | sale | +------------+------+ | 2020-01-01 | 20 | | 2020-01-02 | 25 | | 2020-01-03 | 15 | | 2020-01-04 | 30 | | 2020-02-05 | 20 | | 2020-02-10 | 20 | | 2020-02-06 | 25 | | 2020-03-07 | 15 | | 2020-03-08 | 30 | | 2020-03-09 | 20 | | Total | 220 | +------------+------+
उपरोक्त क्वेरी में, अंतिम पंक्ति के रूप में प्रदर्शित कुल पंक्ति UNION ALL का उपयोग करके आपकी मूल तालिका में जोड़ दी गई है। यह मूल तालिका को नहीं बदलता है, बल्कि केवल प्रदर्शित परिणाम को बदलता है। UNION ALL का उपयोग करते समय, इसमें उपयोग किए गए सभी चुनिंदा प्रश्नों में समान कॉलम बनाए रखना आवश्यक है। इसीलिए, हमने 'कुल' टेक्स्ट को order_date . के रूप में असाइन किया है कॉलम। UNION ALL MySQL में टोटल जोड़ने का एक पुराने जमाने का तरीका है।
बोनस पढ़ें :MySQL में रनिंग टोटल की गणना कैसे करें
रोलअप का उपयोग करना
आप सीधे कुल मानों के लिए ROLLUP क्लॉज के साथ GROUP BY का उपयोग कर सकते हैं और MySQL में स्वचालित रूप से कुल पंक्ति जोड़ सकते हैं, जैसा कि नीचे दिखाया गया है
mysql> select * from sales group by order_date with rollup; +------------+------+ | order_date | sale | +------------+------+ | 2020-01-01 | 20 | | 2020-01-02 | 25 | | 2020-01-03 | 15 | | 2020-01-04 | 30 | | 2020-02-05 | 20 | | 2020-02-06 | 25 | | 2020-02-10 | 20 | | 2020-03-07 | 15 | | 2020-03-08 | 30 | | 2020-03-09 | 20 | | NULL | 20 | +------------+------+
रोलअप का उपयोग करना छोटा है और आपको योग के साथ सारांश पंक्ति जोड़ने में भी मदद करता है, लेकिन यह आपको अपनी अंतिम पंक्ति में कस्टम टेक्स्ट जैसे 'कुल' जोड़ने की अनुमति नहीं देता है। एक और समस्या यह है कि यह स्वचालित रूप से कई स्तरों के लिए डेटा रोलअप करेगा, उप कुल पंक्तियों के साथ-साथ कुल कुल पंक्ति भी जोड़ देगा ..
ROLLUP का उपयोग करके MySQL में कुल पंक्ति जोड़ने का एक उदाहरण यहां दिया गया है। मान लें कि आपके पास निम्न तालिका है
mysql> create table sales(product varchar(255),order_date date,sale int); mysql> insert into sales values('A','2020-01-01',20),('B','2020-01-02',25), ('B','2020-01-03',15),('A','2020-01-04',30),('A','2020-01-05',20); mysql> select * from sales; +---------+------------+------+ | product | order_date | sale | +---------+------------+------+ | A | 2020-01-01 | 20 | | B | 2020-01-02 | 25 | | B | 2020-01-03 | 15 | | A | 2020-01-04 | 30 | | A | 2020-01-05 | 20 | +---------+------------+------+
बोनस पढ़ें : MySQL में एकाधिक पंक्तियों को एक फ़ील्ड में कैसे संयोजित करें
कोई फर्क नहीं पड़ता कि आप अपना ग्रुप बाय क्लॉज कैसे निर्दिष्ट करते हैं, जब आप रोलअप का उपयोग करते हैं, तो आप हमेशा एनयूएलएल और उप-योग के साथ समाप्त हो जाएंगे, जब आप MySQL में कुल पंक्ति जोड़ते हैं।
GROUP BY product and order_date mysql> select product,order_date,sum(sale) from sales group by product,order_date with rollup; +---------+------------+-----------+ | product | order_date | sum(sale) | +---------+------------+-----------+ | A | 2020-01-01 | 20 | | A | 2020-01-04 | 30 | | A | 2020-01-05 | 20 | | A | NULL | 70 | | B | 2020-01-02 | 25 | | B | 2020-01-03 | 15 | | B | NULL | 40 | | NULL | NULL | 110 | +---------+------------+-----------+ GROUP BY only product mysql> select product,order_date,sum(sale) from sales group by product with rollup; +---------+------------+-----------+ | product | order_date | sum(sale) | +---------+------------+-----------+ | A | 2020-01-01 | 70 | | B | 2020-01-02 | 40 | | NULL | 2020-01-02 | 110 | +---------+------------+-----------+ GROUP BY order_date mysql> select product,order_date,sum(sale) from sales group by order_date with rollup; +---------+------------+-----------+ | product | order_date | sum(sale) | +---------+------------+-----------+ | A | 2020-01-01 | 20 | | B | 2020-01-02 | 25 | | B | 2020-01-03 | 15 | | A | 2020-01-04 | 30 | | A | 2020-01-05 | 20 | | A | NULL | 110 | +---------+------------+-----------+
हालांकि, जैसा कि पहले उल्लेख किया गया है, यह उप-योगों की त्वरित गणना करने और MySQL में कुल पंक्ति जोड़ने का एक बहुत ही सुविधाजनक तरीका है।
इसलिए यदि आप अपनी कुल पंक्ति को अनुकूलित करना चाहते हैं, तो UNION ALL के साथ जाएं क्योंकि यह आपको अधिक नियंत्रण देता है। दूसरी ओर, यदि आप उप-योगों की भी गणना करना चाहते हैं, तो ROLLUP के साथ जाएं।
इतना ही! अब आप जानते हैं कि MySQL में कुल रो कैसे जोड़ें।
आप इस डेटा को तालिका में प्लॉट करने और अपनी टीम के साथ साझा करने के लिए रिपोर्टिंग टूल का उपयोग कर सकते हैं। यहां Ubiq का उपयोग करके बनाई गई तालिका का एक उदाहरण दिया गया है।
यदि आप MySQL डेटाबेस से चार्ट, डैशबोर्ड और रिपोर्ट बनाना चाहते हैं, तो आप Ubiq को आज़मा सकते हैं। हम 14-दिन का निःशुल्क परीक्षण प्रदान करते हैं।