अक्सर, हमें उन दिनांक मानों के लिए अनुपलब्ध पंक्तियों को भरकर 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-दिन का निःशुल्क परीक्षण प्रदान करते हैं।