[英]mysql simple moving average in last N hours
下表中有一個每 5 分鍾填充一次速率的 cron 作業,希望能提供一些關於如何在速率列的最后 6 小時內獲取簡單移動平均線的指示
SQL 表如下所示:
id rate created_at updated_at
1 11478.01 2020-08-29 03:11:28 2020-08-29 03:11:28
3 11481.28 2020-08-29 03:20:33 2020-08-29 03:20:33
4 11485.67 2020-08-29 03:29:53 2020-08-29 03:29:53
7 11486.57 2020-08-29 03:39:50 2020-08-29 03:39:50
8 11507.53 2020-08-29 03:48:10 2020-08-29 03:48:10
9 11515.37 2020-08-29 03:53:47 2020-08-29 03:53:47
10 11496.06 2020-08-29 04:01:06 2020-08-29 04:01:06
11 11499.58 2020-08-29 04:02:49 2020-08-29 04:02:49
12 11490.15 2020-08-29 04:22:00 2020-08-29 04:22:00
13 11509.22 2020-08-29 05:19:55 2020-08-29 05:19:55
14 11491.55 2020-08-29 05:26:34 2020-08-29 05:26:34
您可以使用 window 函數和范圍框:
select
t.*,
avg(rate) over(
order by created_at
range between interval 6 hour preceding and current row
) avg_rate
from mytable t
請注意,window 功能僅在 MySQL 的 8.0 版本中可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.