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

Generate_series का उपयोग करके PostgreSQL में गुम तिथियों को कैसे भरें

अक्सर, हमें उन दिनांक मानों के लिए अनुपलब्ध पंक्तियों को भरकर PostgreSQL में अनुपलब्ध तिथियों को भरने की आवश्यकता होती है। यहां बताया गया है कि Generate_series फ़ंक्शन का उपयोग करके PostgreSQL में गुम तारीखों को कैसे भरें।

gener_series का उपयोग करके PostgreSQL में गुम तिथियों को कैसे भरें

यहाँ PostgreSQL में लापता तिथियों को भरने के चरण दिए गए हैं। हम अनुपलब्ध मानों को भरने के लिए PostgreSQL में generate_series का उपयोग करेंगे।

मान लें कि आपके पास निम्न तालिका है बिक्री(order_date,sale)

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

postgresql=# insert into sales(order_date,sale) values('2020-04-01',212),
     ('2020-04-04',220),
     ('2020-04-05',120),
     ('2020-04-07',200),
     ('2020-04-08',222),
     ('2020-04-10',312),
     ('2020-04-11',225),
     ('2020-04-12',212);

postgresql=# select * from sales;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-04-01 |  212 |
| 2020-04-04 |  220 |
| 2020-04-05 |  120 |
| 2020-04-07 |  200 |
| 2020-04-08 |  222 |
| 2020-04-10 |  312 |
| 2020-04-11 |  225 |
| 2020-04-12 |  212 |
+------------+------+

बोनस पढ़ें :PostgreSQL में माध्यिका की गणना कैसे करें

जैसा कि आप ऊपर दी गई तालिका में देख सकते हैं, इसमें 2 अप्रैल, 3, आदि जैसे लापता दिनांक मान हैं।

अगर हम इस डेटा को ग्राफ़ पर प्लॉट करने का प्रयास करते हैं, तो यह कुछ इस तरह दिखाई देगा

ऐसा ग्राफ़ भ्रामक हो सकता है क्योंकि यह लापता तिथियों के लिए कॉलम अंतराल नहीं दिखाता है।

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

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

हम दिनांक श्रृंखला तालिका बनाने के लिए PostgreSQL में generate_series का उपयोग करेंगे। उत्पन्न_श्रृंखला यदि आप अपनी श्रृंखला के लिए न्यूनतम और अधिकतम मान प्रदान करते हैं, तो फ़ंक्शन स्वचालित रूप से संख्याओं और तिथियों की एक जारी श्रृंखला उत्पन्न करता है।

यहां एक उदाहरण दिया गया है, जहां हम Generate_series को अपनी तालिका में न्यूनतम और अधिकतम तिथियों के बीच दिनांक-श्रृंखला उत्पन्न करने के लिए कहते हैं, जिसमें पंक्तियों के रूप में अनुपलब्ध दिनांक मान शामिल हैं।

postgres=# SELECT generate_series(min(order_date), max(order_date), '1d')::date AS order_date
           FROM   sales;

 order_date
------------
 2020-04-01
 2020-04-02
 2020-04-03
 2020-04-04
 2020-04-05
 2020-04-06
 2020-04-07
 2020-04-08
 2020-04-09
 2020-04-10
 2020-04-11
 2020-04-12

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

इसके बाद, हम बिक्री . के साथ हेल्पर टेबल का LEFT जॉइन करते हैं PostgreSQL में छूटी हुई तिथियों को भरने के लिए।

postgres=# SELECT x.order_date, t.sale
           FROM (
              SELECT generate_series(min(order_date), max(order_date), '1d')::date AS order_date
              FROM   sales
               ) x
           LEFT   JOIN sales t USING (order_date)
           ORDER  BY x.order_date;

 order_date | sale
------------+------
 2020-04-01 |  212
 2020-04-02 |
 2020-04-03 |
 2020-04-04 |  220
 2020-04-05 |  120
 2020-04-06 |
 2020-04-07 |  200
 2020-04-08 |  222
 2020-04-09 |
 2020-04-10 |  312
 2020-04-11 |  225
 2020-04-12 |  212

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

2 चार्ट में अंतर देखें!

यदि आप 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. dplyr left_join से कम, शर्त से बड़ा

  2. टाइमज़ोन ऑफ़सेट के साथ दिनांक प्राप्त करना

  3. uWSGI, फ्लास्क, sqlalchemy, और postgres:SSL त्रुटि:डिक्रिप्शन विफल या खराब रिकॉर्ड मैक

  4. कैसे make_interval () PostgreSQL में काम करता है

  5. JSON फ़ील्ड के अपडेट डीबी पर बने नहीं रहते हैं