繁体   English   中英

MYSQL:如何计算每个数据的移动平均值?

[英]MYSQL : How to calculate the moving average of each data?

如何检查每个项目的 3 个总和(移动平均值)?

我无法使用以下结果计算每个项目。

Original data : 
scdate              | value  |
--------------------|--------|
2021-11-10 17:00:00 | 1943.98|
2021-11-10 17:00:18 | 1957.13|
2021-11-10 17:00:36 | 1953.94|
2021-11-10 17:00:54 | 1946.28|
2021-11-10 17:01:12 | 1960.29|
2021-11-10 17:01:29 | 1950.39|
2021-11-10 17:01:47 | 1942.62|
2021-11-10 17:02:05 | 1954.64|
2021-11-10 17:02:23 | 1958.21|
2021-11-10 17:02:41 | 1950.26|
2021-11-10 17:02:58 | 1945.33|
2021-11-10 17:03:16 | 1960.35|

使用 mysql

SELECT  scdate,avg(tt.value) as avg_v FROM
(
SELECT t.scdate,t.value,(@rownum := @rownum + 1) - 1 AS rownum FROM (SELECT @rownum := 0) 
r,scantech_data t 
ORDER BY  scdate asc
) tt 
WHERE scdate >= '2021-11-10 17:00:00' and  scdate <='2021-11-10 17:10:00'
GROUP BY tt.rownum - tt.rownum % 3
order by scdate

***Wrong result

scdate              | avg_v  |
--------------------|--------|
2021-11-10 17:00:00 | 1951.68|
2021-11-10 17:00:54 | 1952.32|
2021-11-10 17:01:47 | 1951.82|
2021-11-10 17:02:41 | 1951.98|

我怎样才能得到以下结果?

应该怎么修改??

***Correct result

scdate              | value   | avg_v  |
--------------------|---------|--------|
2021-11-10 17:00:00 | 1943.98 | 1951.68|
2021-11-10 17:00:18 | 1957.13 | 1952.45|
2021-11-10 17:00:36 | 1953.94 | 1953.50|
2021-11-10 17:00:54 | 1946.28 | 1952.32|
2021-11-10 17:01:12 | 1960.29 | 1951.1 |
2021-11-10 17:01:29 | 1950.39 | 1949.21|
2021-11-10 17:01:47 | 1942.62 | 1951.82|
2021-11-10 17:02:05 | 1954.64 | 1954.37|
2021-11-10 17:02:23 | 1958.21 | 1951.26|
2021-11-10 17:02:41 | 1950.26 | 1951.98|
2021-11-10 17:02:58 | 1945.33 | 1952.84|
2021-11-10 17:03:16 | 1960.35 | 1960.35|

ps:2021-11-10 17:00:00 | 1943.98 | 1951.68|

1951.68 = (1943.98 + 1957.13 + 1953.94) / 3

使用版本:MySql 5.1.47

谢谢你的帮助。

用于查看 Windows 功能的链接

SELECT scdate, value,
SUM(value) 
OVER 
(PARTITION BY scdate ORDER BY scdate ROWS BETWEEN CURRENT ROW  AND 3 FOLLOWING)
FROM test;

近似查询

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM