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

PostgreSQL में पर्सेंटाइल की गणना कैसे करें

पर्सेंटाइल की गणना करने से आपको विश्लेषण के लिए डेटा रैंक करने के साथ-साथ मूल्यों के एक सेट के लिए माध्यिका की गणना करने में मदद मिलती है। यहां बताया गया है कि percentile_cont . का उपयोग करके PostgreSQL में पर्सेंटाइल की गणना कैसे करें खिड़की समारोह। हम यह भी देखेंगे कि PostgreSQL में 50वें पर्सेंटाइल, 90वें पर्सेंटाइल, 95वें पर्सेंटाइल और nवें पर्सेंटाइल की गणना कैसे करें, क्योंकि इनका उपयोग आमतौर पर डेटा विश्लेषण में किया जाता है।

PostgreSQL में पर्सेंटाइल की गणना कैसे करें

हम percentile_cont . का उपयोग करके PostgreSQL में पर्सेंटाइल की गणना करेंगे विंडो फ़ंक्शन

मान लें कि आपके पास निम्न तालिका है बिक्री(order_date, राशि) और आप 50वें पर्सेंटाइल की गणना करना चाहते हैं।

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

postgres=# insert into sales values('2020-04-01',210),
           ('2020-04-02',125),('2020-04-03',150),('2020-04-04',230),
           ('2020-04-05',200),('2020-04-10',220),('2020-04-06',25),
           ('2020-04-07',215),('2020-04-08',300),('2020-04-09',250);

postgres=# select * from sales;
 order_date | sale
------------+------
 2020-04-01 |  210
 2020-04-02 |  125
 2020-04-03 |  150
 2020-04-04 |  230
 2020-04-05 |  200
 2020-04-10 |  220
 2020-04-06 |   25
 2020-04-07 |  215
 2020-04-08 |  300
 2020-04-09 |  250

बोनस पढ़ें :PostgreSQL में छूटी हुई तिथियों को कैसे भरें

यहाँ PostgreSQL में 50वें प्रतिशतक की गणना करने के लिए क्वेरी है। PostgreSQL में माध्यिका की गणना करने के लिए आप उसी क्वेरी का उपयोग कर सकते हैं।

postgres=# SELECT PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY sale) FROM sales;
 percentile_cont
-----------------
           212.5

उपरोक्त क्वेरी में, हम percentile_cont . का उपयोग करते हैं विंडो फ़ंक्शन जो आपको यह परिभाषित करने की अनुमति देता है कि कौन सा प्रतिशतक (उदा 0.5 .) वह 50 वाँ प्रतिशतक है) आप गणना करना चाहते हैं। फिर हम बिक्री . के समूह के भीतर पर्सेंटाइल की गणना करने के लिए WITHIN GROUP क्लॉज़ का भी उपयोग करते हैं मूल्य। हम बिक्री . को सॉर्ट करने के लिए ORDER BY क्लॉज का भी उपयोग करते हैं इससे पहले कि हम PostgreSQL में पर्सेंटाइल की गणना करें।

जब आप percentile_cont . का उपयोग करते हैं विंडो फ़ंक्शन, PostgreSQL 2 मध्य मानों के औसत के रूप में माध्य मान (210, 215) के रूप में प्रक्षेपित करेगा, यदि 2 मध्य मान हैं। इसलिए यह 212.5 लौटाता है

बोनस पढ़ें :PostgreSQL में मूविंग एवरेज की गणना कैसे करें

जब आप PostgreSQL में पर्सेंटाइल की गणना कर सकते हैं, यदि आप नहीं चाहते कि PostgreSQL इंटरपोलेट करे, लेकिन केवल निकटतम मान लौटाए, तो percentile_disc का उपयोग करें इसके बजाय विंडो फ़ंक्शन। यहां एक उदाहरण दिया गया है

postgres=# SELECT PERCENTILE_DISC(0.5) WITHIN GROUP(ORDER BY sale) FROM sales;
 percentile_disc
-----------------
             210

इस मामले में, यदि 2 मध्य मान हैं, तो यह मध्य मानों में से एक को वापस कर देगा।

बोनस पढ़ें :CSV फ़ाइल को PostgreSQL में कैसे आयात करें

PostgreSQL में 90वें प्रतिशतक की गणना कैसे करें

इसी तरह, आप percentile_cont का उपयोग करके PostgreSQL में 90वें प्रतिशतक की गणना कर सकते हैं। हम 0.5 से 0.9 को बदलते हैं में परसेंटाइल_कंट समारोह

postgres=# SELECT PERCENTILE_CONT(0.9) WITHIN GROUP(ORDER BY sale) FROM sales;
percentile_cont
-----------------
255

आप percentile_disc . का उपयोग करके PostgreSQL में 90वें प्रतिशतक की गणना भी कर सकते हैं

postgres=# SELECT PERCENTILE_DISC(0.9) WITHIN GROUP(ORDER BY sale) FROM sales;
percentile_disc
-----------------
250

PostgreSQL में 95वें प्रतिशतक की गणना कैसे करें

इसी तरह, आप percentile_cont . का उपयोग करके PostgreSQL में 95वें पर्सेंटाइल की गणना कर सकते हैं

postgres=# SELECT PERCENTILE_CONT(0.95) WITHIN GROUP(ORDER BY sale) FROM sales;
percentile_cont
-----------------
277.5

आप percentile_disc . का उपयोग करके PostgreSQL में 95वें पर्सेंटाइल की गणना भी कर सकते हैं

postgres=# SELECT PERCENTILE_DISC(0.95) WITHIN GROUP(ORDER BY sale) FROM sales;
percentile_disc
-----------------
300

PostgreSQL में nवें प्रतिशतक की गणना कैसे करें

इसी तरह, आप percentile_cont का उपयोग करके PostgreSQL में nवें प्रतिशतक की गणना कर सकते हैं। हम मूल रूप से n/100 in percentile_cont . की आपूर्ति करते हैं समारोह

postgres=# SELECT PERCENTILE_CONT(n/100) WITHIN GROUP(ORDER BY sale) FROM sales;

आप percentile_disc . का उपयोग करके PostgreSQL में 90वें प्रतिशतक की गणना भी कर सकते हैं

postgres=# SELECT PERCENTILE_DISC(n/100) WITHIN GROUP(ORDER BY sale) FROM sales;

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

postgres=# select * from sales,
(SELECT PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY sale) FROM sales) temp 
order by order_date;
 order_date | sale | percentile_cont
------------+------+-----------------
 2020-04-01 |  210 |           212.5
 2020-04-02 |  125 |           212.5
 2020-04-03 |  150 |           212.5
 2020-04-04 |  230 |           212.5
 2020-04-05 |  200 |           212.5
 2020-04-06 |   25 |           212.5
 2020-04-07 |  215 |           212.5
 2020-04-08 |  300 |           212.5
 2020-04-09 |  250 |           212.5
 2020-04-10 |  220 |           212.5

यहां एक लाइन चार्ट दिया गया है जो यूबिक का उपयोग करके प्लॉट किए गए पर्सेंटाइल के साथ दैनिक बिक्री दिखाता है

यदि आप 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. SQLite3 LIKE या PostgreSQL ILIKE के लिए सामान्य रूबी समाधान?

  2. PostgreSQL दिनांक और समय कार्य

  3. PostgreSQL में SQL क्वेरी चलाना बंद करें (लंबी) जब सत्र या अनुरोध अब मौजूद नहीं हैं?

  4. Psycopg2 प्लेसहोल्डर्स के साथ तालिका में सम्मिलित करें

  5. pgAdmin के साथ एक उपयोगकर्ता कैसे बनाएं