कभी-कभी आपको यह समझने के लिए अपने डेटा में एक कॉलम (जैसे बिक्री, राजस्व) के प्रतिशत की गणना करने की आवश्यकता हो सकती है कि आपके कॉलम के कुल मूल्य का कितना प्रतिशत प्रत्येक पंक्ति (जैसे देश, राज्य, आदि) से आ रहा है। चूंकि इस मान की गणना करने के लिए कोई आउट-ऑफ-द-बॉक्स फ़ंक्शन नहीं है, इसलिए आपको इसके लिए एक SQL क्वेरी लिखनी होगी। यहां बताया गया है कि MySQL में कॉलम के प्रतिशत की गणना कैसे करें
MySQL में कॉलम के प्रतिशत की गणना कैसे करें
मान लें कि आपके पास निम्न तालिका है जैसा कि नीचे दिखाया गया है।
mysql> create table sales(rep varchar(255),sale int); mysql> insert into sales values('Bob',15),('Sally',30),('Peter',15); mysql> select * from sales; +-------+------+ | rep | sale | +-------+------+ | Bob | 15 | | Sally | 30 | | Peter | 15 | +-------+------+
मान लें कि आप 'कुल का प्रतिशत' कॉलम प्रदर्शित करना चाहते हैं जो कुल बिक्री का केवल प्रतिशत है कॉलम, जैसा कि नीचे दिखाया गया है।
+-------+------+------------------+ | rep | sale | percent of total | +-------+------+------------------+ | Bob | 15 | 25 | | Sally | 30 | 50 | | Peter | 15 | 25 | +-------+------+------------------+
आप इसे केवल एक क्वेरी का उपयोग करके कई तरीकों से कर सकते हैं। कुल और प्रतिशत की गणना के लिए अलग-अलग प्रश्न लिखने की आवश्यकता नहीं है। आइए उनमें से प्रत्येक को देखें
बोनस पढ़ें : MySQL में दो स्तंभों के प्रतिशत की गणना कैसे करें
क्रॉस जॉइन का उपयोग करके MySQL में कॉलम के प्रतिशत की गणना कैसे करें
MySQL में कॉलम के प्रतिशत की गणना करने के लिए, आप बस sum() . से जुड़ सकते हैं बिक्री . की मूल तालिका के साथ कॉलम।
SELECT Rep, Sale, Sale * 100 / t.s AS `percent of total` FROM sales CROSS JOIN (SELECT SUM(sale) AS s FROM sales) t; +-------+------+------------------+ | rep | sale | percent of total | +-------+------+------------------+ | Bob | 15 | 25 | | Sally | 30 | 50 | | Peter | 15 | 25 | +-------+------+------------------+
यदि आप अपने डेटा को फ़िल्टर करने के लिए जहां क्लॉज जोड़ना चाहते हैं, तो आपको इसे क्रॉस जॉइन के बाद रखना होगा, जैसा कि नीचे दिखाया गया है। अन्यथा, आपको एक त्रुटि मिलेगी।
SELECT Rep, Sale, Sale * 100 / t.s AS `percent of total` FROM sales CROSS JOIN (SELECT SUM(sale) AS s FROM sales) t where Rep='Bob'; +------+------+------------------+ | Rep | Sale | percent of total | +------+------+------------------+ | Bob | 15 | 25 | +------+------+------------------+
हालाँकि, यदि आप कॉलम के योग के दौरान जहाँ क्लॉज़ जोड़ना चाहते हैं, तो आपको इसे कुल के चुनिंदा क्लॉज़ में जोड़ना होगा, जैसा कि नीचे दिखाया गया है। मान लीजिए, आप बॉब को कुल योग से ही बाहर करना चाहते हैं, तो इसे करने के लिए यहां एक प्रश्न दिया गया है।
SELECT Rep, Sale, Sale * 100 / t.s AS `percent of total` FROM sales CROSS JOIN (SELECT SUM(sale) AS s FROM sales where Rep<>'Bob') t where Rep<>'Bob'; +-------+------+------------------+ | Rep | Sale | percent of total | +-------+------+------------------+ | Sally | 30 | 66.6667 | | Peter | 15 | 33.3333 | +-------+------+------------------+
बोनस पढ़ें : MySQL में सप्ताह दर सप्ताह प्रतिशत वृद्धि की गणना कैसे करें
SUBSELECT/SUBQUERY का उपयोग करके MySQL में कॉलम के प्रतिशत की गणना कैसे करें
जैसा कि नीचे दिखाया गया है, आप जॉइन का उपयोग करने के बजाय, उप-चयन का उपयोग करके कॉलम के प्रतिशत की गणना भी कर सकते हैं।
SELECT Rep, Sale, Sale * 100 / (SELECT SUM(sale) AS s FROM sales) AS `percent of total` FROM sales; +-------+------+------------------+ | rep | sale | percent of total | +-------+------+------------------+ | Bob | 15 | 25 | | Sally | 30 | 50 | | Peter | 15 | 25 | +-------+------+------------------+
यदि आप अपने डेटा को फ़िल्टर करने के लिए जहां क्लॉज जोड़ना चाहते हैं, तो आपको इसे क्रॉस जॉइन के बाद रखना होगा, जैसा कि नीचे दिखाया गया है। अन्यथा, आपको एक त्रुटि मिलेगी।
SELECT Rep, Sale, Sale * 100 / (SELECT SUM(sale) AS s FROM sales) AS `percent of total` FROM sales where Rep='Bob'; +--------+--------+-------------------+ | Rep | Sale | percent of total | +--------+--------+-------------------+ | Bob | 15 | 25 | +--------+--------+-------------------+
हालाँकि, यदि आप कॉलम के योग के दौरान जहाँ क्लॉज़ जोड़ना चाहते हैं, तो आपको इसे टोटल के सेलेक्ट क्लॉज़ में जोड़ना होगा। मान लीजिए, आप बॉब को कुल योग से ही बाहर करना चाहते हैं, तो इसे करने के लिए यहां एक प्रश्न दिया गया है।
SELECT Rep, Sale, Sale * 100 / (SELECT SUM(sale) AS s FROM sales where Rep='Bob') AS `percent of total` FROM sales where Rep='Bob'; +-------+------+------------------+ | Rep | Sale | percent of total | +-------+------+------------------+ | Sally | 30 | 66.6667 | | Peter | 15 | 33.3333 | +-------+------+------------------+
MySQL में कॉलम के प्रतिशत की गणना करने के लिए आप अपनी आवश्यकता के अनुसार उपरोक्त प्रश्नों को कस्टमाइज़ कर सकते हैं।
इसके अलावा, आप डेटा को पाई चार्ट या डैशबोर्ड में प्लॉट करने के लिए रिपोर्टिंग टूल का उपयोग कर सकते हैं। यहाँ Ubiq का उपयोग करके बनाए गए पाई चार्ट का एक उदाहरण दिया गया है।
यदि आप MySQL डेटाबेस से चार्ट, डैशबोर्ड और रिपोर्ट बनाना चाहते हैं, तो आप Ubiq को आज़मा सकते हैं। हम 14-दिन का निःशुल्क परीक्षण प्रदान करते हैं।