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

PostgreSQL में महीने दर महीने वृद्धि की गणना कैसे करें

महीने दर महीने वृद्धि बिक्री, साइनअप आदि की तुलना में महीने दर महीने के लिए एक उपयोगी व्यावसायिक मीट्रिक KPI है। हम SQL क्वेरी के माध्यम से मासिक प्रतिशत वृद्धि की गणना करेंगे, क्योंकि इसके लिए कोई PostgreSQL फ़ंक्शन नहीं है। PostgreSQL में महीने दर महीने वृद्धि की गणना करने का तरीका यहां दिया गया है।

PostgreSQL में महीने दर महीने वृद्धि की गणना कैसे करें

मान लें कि आपके पास एक तालिका है जिसमें मासिक बिक्री शामिल है जिसे sales_data(माह, बिक्री) कहा जाता है

postgres=# create table sales_data(month int,sale int);

postgres=# insert into sales_data(month,sale) values(1,2021),
           (2,2102),(3,2150),(4,2312),(5,2425);

postgres=# select * from sales_data;
 month | sale
-------+------
     1 | 2021
     2 | 2102
     3 | 2150
     4 | 2312
     5 | 2425

यहाँ PostgreSQL में बिक्री में महीने दर महीने प्रतिशत वृद्धि की गणना करने के लिए SQL क्वेरी है।

postgres=# select month,sum(sale) as current_sale,
                lag(sum(sale), 1) over (order by month) as previous_month_sale,
                (100 * (sum(sale) - lag(sum(sale), 1) over (order by month)) / lag(sum(sale), 1) over 
                (order by month)) || '%' as growth
                from sales_data
                group by 1
                order by 1;
 month | current_sale | previous_month_sale | growth
-------+--------------+---------------------+--------
     1 |         2021 |                     |
     2 |         2102 |                2021 | 4%
     3 |         2150 |                2102 | 2%
     4 |         2312 |                2150 | 7%
     5 |         2425 |                2312 | 4%

उपरोक्त क्वेरी में, हम पिछले महीने की बिक्री की गणना करने के लिए LAG विंडो फ़ंक्शन का उपयोग करते हैं, और इसका उपयोग PostgreSQL में महीने दर महीने वृद्धि की गणना करने के लिए करते हैं। LAG आपको वर्तमान पंक्ति से पहले आने वाली पंक्ति को परिभाषित ऑफ़सेट पर लाने की अनुमति देता है, जो हमारे मामले में 1 है।

बोनस पढ़ें: पोस्टग्रेएसक्यूएल में पिवट टेबल कैसे बनाएं

ज्यादातर मामलों में, आपके पास मासिक संख्या के बजाय दैनिक बिक्री डेटा होगा। इस मामले में, हम पहले इसे मासिक बिक्री संख्या में एकत्रित करते हैं और फिर PostgreSQL में महीने दर महीने वृद्धि की गणना करने के लिए उपरोक्त SQL क्वेरी लागू करते हैं।

मान लें कि आपके पास दैनिक बिक्री डेटा है।

postgres=# create sales (order_date date, sale int);

postgres=# 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);

postgres=# 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 |

यहाँ PostgreSQL में मासिक वृद्धि दर की गणना करने के लिए SQL क्वेरी है

postgres=# select month,sum(sale) as current_sale,
           lag(sum(sale), 1) over (order by month) as previous_month_sale,
           round((100 * (sum(sale) - lag(sum(sale), 1) over (order by month)) / lag(sum(sale), 1) over 
           (order by month)),2) || '%' as growth
           from (select to_char(order_date,'Mon') as month,
           sum(sale) as sale
           from sales
           group by 1 ) sales_data
           group by 1
           order by 1;
 month | current_sale | previous_month_sale | growth
-------+--------------+---------------------+---------
 Feb   |           65 |                     |
 Jan   |           90 |                  65 | 38.46%
 Mar   |           65 |                  90 | -27.78%

उपरोक्त क्वेरी में, हम दैनिक बिक्री डेटा को मासिक मानों (बोल्ड . में) में एकत्रित करते हैं ) और फिर पहले की क्वेरी का उपयोग करें।

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

postgres=# select month,sum(sale) as current_sale,
           lag(sum(sale), 1) over (order by month) as previous_month_sale,
           round((100 * (sum(sale) - lag(sum(sale), 1) over (order by month)) / lag(sum(sale), 1) over 
           (order by month)),2) || '%' as growth
           from (select to_char(order_date,'Mon') as month,
           sum(sale) as sale
           from sales 
           WHERE condition
           group by 1 ) sales_data
           group by 1
           order by 1;

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

यदि आप PostgreSQL डेटाबेस से चार्ट, डैशबोर्ड और रिपोर्ट बनाना चाहते हैं, तो आप 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. RPAD () PostgreSQL में फ़ंक्शन

  2. pgAdmin में एक ER डायग्राम बनाएं

  3. PostgreSQL के लिए जेनरेट किए गए कॉलम का अवलोकन

  4. आपको PostgreSQL क्यों सीखना चाहिए?

  5. pg_table_size, pg_relation_size और pg_total_relation_size में क्या अंतर है? (पोस्टग्रेएसक्यूएल)