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

MySQL में मूविंग एवरेज की गणना कैसे करें

कई बार आपको MySQL में मूविंग एवरेज की गणना करने की आवश्यकता हो सकती है, जिसे सिंपल मूविंग एवरेज भी कहा जाता है। उदा, औसत बिक्री पिछले 5 दिनों . के लिए . MySQL में, मूविंग एवरेज की गणना करने के लिए कोई फ़ंक्शन नहीं है। तो आइए देखें कि SQL क्वेरी का उपयोग करके MySQL में मूविंग एवरेज की गणना कैसे करें।

MySQL में मूविंग एवरेज की गणना कैसे करें

यहाँ MySQL में मूविंग एवरेज की गणना करने के चरण दिए गए हैं। मान लें कि आपके पास निम्न तालिका है जिसमें दैनिक बिक्री डेटा है

mysql> create table sales(order_date date,sale int);

mysql> insert into sales values('2020-01-01',20),
('2020-01-02',25),('2020-01-03',15),('2020-01-04',30),
('2020-01-05',20),('2020-01-10',20),('2020-01-06',25),
('2020-01-07',15),('2020-01-08',30),('2020-01-09',20);

mysql> select * from sales;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-01-01 |   20 |
| 2020-01-02 |   25 |
| 2020-01-03 |   15 |
| 2020-01-04 |   30 |
| 2020-01-05 |   20 |
| 2020-01-10 |   20 |
| 2020-01-06 |   25 |
| 2020-01-07 |   15 |
| 2020-01-08 |   30 |
| 2020-01-09 |   20 |
+------------+------+

बोनस पढ़ें : MySQL में प्रति दिन औसत बिक्री की गणना कैसे करें

मान लें कि आप पिछले 5 दिनों की चलती औसत बिक्री की गणना करना चाहते हैं। यहां बताया गया है कि आप इसे MySQL में SQL क्वेरी का उपयोग करके कैसे कर सकते हैं।

mysql> SELECT
       a.order_date,
       a.sale,
       Round( ( SELECT SUM(b.sale) / COUNT(b.sale)
                FROM sales AS b
                WHERE DATEDIFF(a.order_date, b.order_date) BETWEEN 0 AND 4
              ), 2 ) AS '5dayMovingAvg'
     FROM sales AS a
     ORDER BY a.order_date;
+------------+------+---------------+
| order_date | sale | 5dayMovingAvg |
+------------+------+---------------+
| 2020-01-01 |   20 |         20.00 |
| 2020-01-02 |   25 |         22.50 |
| 2020-01-03 |   15 |         20.00 |
| 2020-01-04 |   30 |         22.50 |
| 2020-01-05 |   20 |         22.00 |
| 2020-01-06 |   25 |         23.00 |
| 2020-01-07 |   15 |         21.00 |
| 2020-01-08 |   30 |         24.00 |
| 2020-01-09 |   20 |         22.00 |
| 2020-01-10 |   20 |         22.00 |
+------------+------+---------------+

उपरोक्त क्वेरी में, हम अपनी बिक्री तालिका को स्वयं के साथ जोड़ते हैं, और प्रत्येक ऑर्डर_डेट मान के लिए, हम इसके पिछले 5 दिनों के बिक्री डेटा के आधार पर औसत की गणना करते हैं। हमारी SQL क्वेरी में, dateiff फ़ंक्शन का उपयोग करके प्रत्येक a.order_date की समय विंडो (5 दिनों से पहले) के लिए एकत्र किए गए बिक्री डेटा के आधार पर, आंतरिक क्वेरी औसत गणना करती है।

बोनस पढ़ें : रेडशिफ्ट में मूविंग एवरेज की गणना कैसे करें

अगर आप अपनी टाइम विंडो बदलना चाहते हैं, तो बस उस हिस्से को बोल्ड . में बदलें (0 और 4 के बीच) उपरोक्त क्वेरी में।

आप नेस्टेड क्वेरी में WHERE क्लॉज को अपडेट करके और फिल्टर भी जोड़ सकते हैं।

आप अपनी आवश्यकताओं के अनुसार, MySQL में मूविंग एवरेज की गणना करने के लिए उपरोक्त क्वेरी को कस्टमाइज़ कर सकते हैं।

आप लाइन चार्ट या डैशबोर्ड पर मूविंग एवरेज प्लॉट करने के लिए चार्टिंग टूल का भी उपयोग कर सकते हैं। यहां Ubiq का उपयोग करके बनाए गए लाइन चार्ट का एक उदाहरण दिया गया है।

यदि आप MySQL डेटाबेस से चार्ट, डैशबोर्ड और रिपोर्ट बनाना चाहते हैं, तो आप 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. MySQL का अब () +1 दिन

  2. DATE_SUB () उदाहरण – MySQL

  3. node.js mysql त्रुटि:ECONNREFUSED

  4. लिनक्स के लिए 12 MySQL/MariaDB सुरक्षा सर्वोत्तम अभ्यास

  5. ऑटो जनरेट डेटाबेस आरेख MySQL