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

कई घंटों में, हर घंटे में कुल मान

एक एक कस्टम के साथ विंडो फ़ंक्शन फ्रेम इसे आश्चर्यजनक रूप से सरल बनाता है :

SELECT ts
      ,avg(val) OVER (ORDER BY ts
                      ROWS BETWEEN CURRENT ROW AND 7 FOLLOWING) AS avg_8h
FROM tbl;

sqlfiddle पर लाइव डेमो।

प्रत्येक औसत के लिए फ़्रेम वर्तमान पंक्ति प्लस निम्न 7 है। यह मानता है कि आपके पास प्रत्येक घंटे के लिए ठीक एक पंक्ति है। आपका नमूना डेटा ऐसा प्रतीत होता है, लेकिन आपने निर्दिष्ट नहीं किया।

वैसे ही, avg_8h फाइनल के लिए (ts . के अनुसार) ) सेट की 7 पंक्तियों की गणना कम पंक्तियों के साथ की जाती है, जब तक कि अंतिम पंक्ति का मान अपने स्वयं के औसत के बराबर न हो जाए। आपने निर्दिष्ट नहीं किया कि विशेष मामले से कैसे निपटा जाए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेज के साथ सम्मिलित तालिका में केवल एक पंक्ति में कैसे शामिल हों?

  2. Postgresql को पुनरारंभ कैसे करें

  3. Postgres . में मौजूदा कॉलम में 'धारावाहिक' जोड़ना

  4. उसकेोकू में नोड/सेक्वेलिज़ ऐप को तैनात करना - पोर्ट के साथ समस्या

  5. डिबग कैसे करें:आंतरिक त्रुटि वर्तमान लेनदेन निरस्त कर दिया गया है, लेनदेन ब्लॉक के अंत तक आदेशों को नजरअंदाज कर दिया गया है