日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 中average_mysql – 计算SQL中的移动平均值

發布時間:2025/3/17 数据库 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 中average_mysql – 计算SQL中的移动平均值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我想從MySQL專欄計算12個月的移動平均線.數據代表時間序列功率測量,它是一個較大的數據集(幾年內每10分鐘一次).一個高性能的查詢會很好,但速度是我以后可以解決的問題.

DTE Active

2012-1-3 00:10 500

2012-1-3 00:20 520

... etc

以下查詢為我提供了每月的活動總數:

SELECT YEAR(DTE) AS year, MONTH(DTE) AS month, SUM(Active)/6 as total FROM saturne s GROUP BY YEAR(DTE), MONTH(DTE)

以下查詢給出了給定月份和年份的移動平均值 – 例如2011年10月

SELECT SUM(Active)/6 AS average FROM saturne

WHERE (YEAR(DTE) = 2011 AND MONTH(DTE) <= 10) OR (YEAR(DTE) = 2010 AND MONTH(DTE) > 10)

但是,我想生成一個查詢,該查詢返回下一列中的每月總計和12個月移動平均值.

year month total average

2012 2 701474 9258089

2012 1 877535 9386664

... etc

(因子6是因為數據表示每10分鐘記錄一次的瞬時功率,將總數除以6給出總能量)

解決方法:

嘗試:

SELECT YEAR(GDTE) AS year,

MONTH(GDTE) AS month,

SUM(case when i=0 then Active end)/6 as total,

SUM(Active)/(MAX(i+1)*6) as avg

FROM

(select s.*, DATE_ADD(DTE, INTERVAL m.i MONTH) GDTE, m.i

FROM saturne s

cross join (select 0 i union select 1 union select 2 union select 3 union

select 4 union select 5 union select 6 union select 7 union

select 8 union select 9 union select 10 union select 11) m

) sq

WHERE GDTE <= curdate()

GROUP BY YEAR(GDTE), MONTH(GDTE)

標簽:sql,mysql

來源: https://codeday.me/bug/20190902/1790254.html

新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的mysql 中average_mysql – 计算SQL中的移动平均值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。