mysql最近30天每小时的平均值

ffvjumwh  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(398)

我有一个表格,每分钟更新一次,我需要计算过去30天每小时的平均值。

Timestamp            | SB1_AC_GES_DIFF
2020-07-14 15:13:04     30
2020-07-14 15:12:07     27
...                     ...

我想将结果保存在另一个名为avgtable的表中,如下所示

Timestamp            | AVG_SB1
15:00                  29
16:00                  32
...                    ...

如果表可以一天更新一次,可能是12点,并且日期部分发生变化,那就太好了。

ndh0cuux

ndh0cuux1#

你可以用 hour() 功能:

select hour(timestamp) as hh, avg(sb1_ac_ges_diff)
from t
group by hh;

你可以把它转换成字符串或时间,如果你想,但这似乎没有什么用处。
如果你真的想要每天的时间,那么:

select date(timestamp) as dd, hour(timestamp) as hh, avg(sb1_ac_ges_diff)
from t
group by dd, hh;
oymdgrw7

oymdgrw72#

您可以尝试:

INSERT INTO avg_table 
SELECT Date_format(Timestamp, "%h:00:00") AS HourlyTimeStamp, 
       Avg(sb1_ac_ges_diff) AS "AVG_SB1" 
FROM   table
WHERE Timestamp between DATEADD(DAY, -30, GETDATE()) AND GETDATE()
GROUP BY 1

假设你想要的是一天中不可知的滚动平均值。

相关问题