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

MySQL में महीने के हिसाब से प्रतिशत ग्रोथ मंथ की गणना कैसे करें

महीने दर महीने वृद्धि हर व्यवसाय के लिए एक प्रमुख प्रदर्शन संकेतक है। चूंकि, MySQL में महीने दर महीने प्रतिशत वृद्धि की गणना करने के लिए कोई फ़ंक्शन नहीं है, इसलिए आपको महीने दर महीने परिवर्तन की गणना करने के लिए एक SQL क्वेरी लिखनी होगी। तो आइए देखें कि MySQL में महीने दर महीने प्रतिशत वृद्धि की गणना कैसे करें। आप इसका उपयोग अपने व्यवसाय में समय के साथ महीने दर महीने प्रतिशत परिवर्तन पर नज़र रखने के लिए भी कर सकते हैं।

MySQL में महीने दर महीने प्रतिशत वृद्धि की गणना कैसे करें

मान लें कि आपके पास डेटा तालिका माह_बिक्री (माह, बिक्री) है जिसमें मासिक बिक्री शामिल है, जैसा कि नीचे दिखाया गया है।

mysql> create table monthly_sales(month int,sale int);
mysql> insert into monthly_sales(month,sale) values(1,20),
(2,30),(3,25),(4,45),(5,25);
mysql> select * from monthly_sales;
+-------+------+
| month | sale |
+-------+------+
| 1     |   20 |
| 2     |   30 |
| 3     |   25 |
| 4     |   45 |
| 5     |   25 |
+-------+------+

आप निम्न SQL का उपयोग करके महीने दर महीने प्रतिशत वृद्धि की गणना कर सकते हैं।

mysql> select month, sale,
    if(@last_entry = 0, 0, round(((sale - @last_entry) / @last_entry) * 100,2)) "growth rate",
    @last_entry := sale
    from
    (select @last_entry := 0) x,
    (select month, sum(sale) sale
    from   monthly_sales
    group by month) y;
+-------+------+-------------+---------------------+
| month | sale | growth rate | @last_entry := sale |
+-------+------+-------------+---------------------+
| 1     |   20 |           0 |                  20 |
| 2     |   30 |       50.00 |                  30 |
| 3     |   25 |      -16.67 |                  25 |
| 4     |   45 |       80.00 |                  45 |
| 5     |   25 |      -44.44 |                  25 |
+-------+------+-------------+---------------------+

उपरोक्त क्वेरी में, प्रत्येक पंक्ति (महीने) के लिए, हम पिछले महीने की बिक्री को एक अस्थायी चर last_entry में संग्रहीत करते हैं।

हालांकि, ज्यादातर मामलों में, आपके पास दैनिक बिक्री डेटा होगा। उस स्थिति में, आपको पहले इसे मासिक बिक्री से जोड़ना होगा, और फिर महीने दर महीने प्रतिशत वृद्धि दर की गणना करनी होगी। मान लें कि आपके पास डेटा तालिका बिक्री(created_at, बिक्री) है जिसमें दैनिक बिक्री जानकारी शामिल है।

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 |
+------------+------+

मान लें कि आप मासिक वृद्धि दर की गणना करना चाहते हैं, इसके लिए यहां SQL क्वेरी है।

mysql> select month, sale, 
       if(@last_entry = 0, 0, round(((sale - @last_entry) / @last_entry) * 100,2)) "growth rate",
       @last_entry := sale                  
from
      (select @last_entry := 0) x,
      (select month, sum(sale) sale
       from   (select month(order_date) as month,sum(sale) as sale 
               from sales group by month(order_date)) monthly_sales
       group by month) y;		

+-------+------+-------------+---------------------+
| month | sale | growth rate | @last_entry := sale |
+-------+------+-------------+---------------------+
|     1 |   90 |           0 |                  90 |
|     2 |   65 |      -27.78 |                  65 |
|     3 |   65 |        0.00 |                  65 |
+-------+------+-------------+---------------------+   

उपरोक्त क्वेरी में, हम सबसे पहले दैनिक बिक्री को मासिक मूल्यों में जोड़ते हैं (बोल्ड . में दिखाया गया है) ) और फिर प्रतिशत वृद्धि की गणना करने के लिए पिछली क्वेरी का उपयोग करें।

बोनस पढ़ें : MySQL में प्रति दिन औसत बिक्री की गणना कैसे करें

यदि आप महीने दर महीने प्रतिशत वृद्धि की गणना करने से पहले अपने डेटा को फ़िल्टर करना चाहते हैं, तो आप अपनी क्वेरी में WHERE क्लॉज़ जोड़कर ऐसा कर सकते हैं जैसा कि नीचे दिखाया गया है

mysql> select month, sale, 
       if(@last_entry = 0, 0, round(((sale - @last_entry) / @last_entry) * 100,2)) "growth rate",
       @last_entry := sale                  
from
      (select @last_entry := 0) x,
      (select month, sum(sale) sale
       from   (select month(order_date) as month,sum(sale) as sale 
               from sales 
               WHERE condition
               group by month(order_date)) monthly_sales
       group by month) y;

बोनस पढ़ें : MySQL में प्रति माह कुल बिक्री की गणना कैसे करें?

कृपया ध्यान दें :चूंकि महीने दर महीने प्रतिशत वृद्धि की गणना एक अस्थायी चर में पिछली पंक्ति के मान को संग्रहीत करने की अवधारणा पर आधारित है, सुनिश्चित करें कि आपकी तालिका महीने के आरोही क्रम में क्रमबद्ध है (जैसे 1,2,3, आदि या 202001,202002 ,202003, आदि)। अन्यथा आपका डेटा वर्णानुक्रम में क्रमबद्ध हो सकता है और जब आप MySQL में महीने दर महीने प्रतिशत वृद्धि की गणना करते हैं तो गलत परिणाम दे सकते हैं।

आप इस डेटा को बार चार्ट या डैशबोर्ड पर प्लॉट करने और अपनी टीम के साथ साझा करने के लिए रिपोर्टिंग टूल का उपयोग कर सकते हैं। यहां एक बार चार्ट का उदाहरण दिया गया है, जो Ubiq का उपयोग करके बनाए गए महीने दर महीने बिक्री वृद्धि को दर्शाता है।

यदि आप MySQL डेटाबेस से चार्ट, डैशबोर्ड और रिपोर्ट बनाना चाहते हैं, तो आप Ubiq आज़मा सकते हैं। हम 14-दिन का निःशुल्क परीक्षण प्रदान करते हैं।

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL लंबाई () बनाम char_length ()

  2. Laravel:गतिशील रूप से डेटाबेस से कनेक्ट करें

  3. MySQL/MariaDB सर्वर को कैसे सुरक्षित करें

  4. MySQL दृश्यों की सूची कैसे प्राप्त करें?

  5. MySQL डेटाबेस में सबसे बड़ी तालिका कैसे खोजें?