संचयी कुल, जिसे रनिंग टोटल के रूप में भी जाना जाता है, समय के साथ कुल योग मानों की निगरानी के लिए एक उपयोगी KPI मीट्रिक है। यदि आपका डेटा Amazon Redshift में संग्रहीत है, तो Redshift में संचयी योग की गणना करना काफी आसान है। आइए देखें कि Redshift में रनिंग टोटल की गणना कैसे करें।
Redshift में रनिंग टोटल की गणना कैसे करें
रेडशिफ्ट में रनिंग टोटल की गणना करने के चरण यहां दिए गए हैं। मान लें कि आपके पास निम्न तालिका है जिसमें दैनिक बिक्री शामिल है
postgres-#> create table sales(order_date date,sale int);
postgres-#> insert into sales values('2020-03-01',30),
('2020-03-02',35),('2020-03-03',25),('2020-03-04',40),('2020-03-05',30);
postgres-#> select * from sales;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-03-01 | 30 |
| 2020-03-02 | 35 |
| 2020-03-03 | 25 |
| 2020-03-04 | 40 |
| 2020-03-05 | 30 |
+------------+------+
मान लें कि आप बिक्री के संचयी योग की गणना करना चाहते हैं, जैसे,
+------------+------+-----------------+ | order_date | sale | cumulative_sale | +------------+------+-----------------+ | 2020-03-01 | 30 | 30 | | 2020-03-02 | 35 | 65 | | 2020-03-03 | 25 | 90 | | 2020-03-04 | 40 | 130 | | 2020-03-05 | 30 | 160 | +------------+------+-----------------+
Redshift में कुल रनिंग की गणना करने के लिए यहाँ SQL क्वेरी है। चूंकि Redshift मूल रूप से PostgreSQL है, इसके सभी कार्य और भाव PostgreSQL में उपलब्ध हैं। तो हम ऐसा करने के लिए PostgreSQL में उपलब्ध एक Window Function का उपयोग करेंगे।
postgres=# SELECT order_date
, sum(sale) over (order by order_date asc rows between unbounded preceding and current row)
FROM sales
ORDER BY order_date;
order_date | sum
------------+-----
2020-03-01 | 30
2020-03-02 | 65
2020-03-03 | 90
2020-03-04 | 130
2020-03-05 | 160
आइए उपरोक्त क्वेरी को विस्तार से देखें। उपरोक्त एसयूएम फ़ंक्शन प्रत्येक पंक्ति के लिए संचयी योग की गणना करता है। हालांकि, हम एक विंडो फंक्शन OVER का उपयोग करते हैं जो हमें Redshift में रनिंग टोटल की गणना के लिए उपयोग की जाने वाली पंक्तियों की संख्या को परिभाषित करने में मदद करता है।
बोनस पढ़ें:रेडशिफ्ट में मूविंग एवरेज की गणना कैसे करें
सबसे पहले, हम अपने डेटा को क्रमानुसार order_date . तक ऑर्डर करते हैं यह सुनिश्चित करने के लिए कि हम प्रत्येक संचयी योग के लिए सही पंक्तियाँ जोड़ते हैं। इसके बाद, प्रत्येक पंक्ति के लिए, हम Redshift को बिक्री . के योग के लिए कहते हैं सभी पूर्ववर्ती पंक्तियों के लिए कॉलम। हम विंडो फ़ंक्शन का उपयोग करके ऐसा करते हैं, और अनबाउंड पूर्ववर्ती और वर्तमान पंक्ति के बीच की पंक्तियों का उल्लेख करते हैं . अर्थात्, प्रत्येक पंक्ति के लिए, संचयी योग के लिए केवल पूर्ववर्ती पंक्तियों पर विचार करें।
चूंकि प्रत्येक पंक्ति के लिए विंडो फ़्रेम में परिवर्तन होता है, रनिंग टोटल की गणना के लिए केवल पिछली पंक्तियों का उपयोग किया जाएगा।
यदि आप Redshift में रनिंग टोटल की गणना करने से पहले अपने डेटा को फ़िल्टर करना चाहते हैं, तो आप WHERE क्लॉज़ जोड़कर ऐसा कर सकते हैं, जैसा कि नीचे दिखाया गया है।
postgres=# SELECT order_date
, sum(sale) over (order by order_date asc rows between unbounded preceding and current row)
FROM sales
ORDER BY order_date
WHERE <condition>;
बोनस पढ़ें : पोस्टग्रेएसक्यूएल में पिवट टेबल कैसे बनाएं
साथ ही, चूंकि Redshift मूल रूप से PostgreSQL है, आप PostgreSQL में कुल रनिंग की गणना करने के लिए उपरोक्त क्वेरी का भी उपयोग कर सकते हैं।
Redshift में संचयी योग की गणना करने के बाद, आप Redshift डेटा विज़ुअलाइज़ेशन टूल का उपयोग इसे लाइन चार्ट पर प्लॉट करने के लिए कर सकते हैं। यूबीआईक्यू का उपयोग करके बनाए गए संचयी कुल के लिए लाइन चार्ट का एक उदाहरण यहां दिया गया है।
यदि आप Redshift डेटाबेस से चार्ट और डैशबोर्ड बनाना चाहते हैं, तो आप Ubiq आज़मा सकते हैं। हम 14-दिन का निःशुल्क परीक्षण प्रदान करते हैं।