mysql - 在 MySQL 中计算一个时间间隔内的平均值总和
问题描述
我有一个多个传感器的流量表,我想报告过去 24 小时内所有传感器每隔 5 分钟的平均流量。到目前为止,我有:
SELECT SUM(total_rate) as 'rate'
FROM sensor_stats WHERE `timestamp` > now() - interval 24 hour
GROUP BY UNIX_TIMESTAMP(`timestamp`) DIV 300
rate
10375130
7161878
22444777
11157688
28045465
这让我走上了正轨,但现在我需要每个间隔的平均值。该用例试图找出在给定的一天内流量何时达到最高值。我计划在图表上显示 5 分钟的间隔。
解决方案
我想你需要的是
SELECT SUM(total_rate) / COUNT(*) as 'rate'
FROM sensor_stats WHERE `timestamp` > now() - interval 24 hour
GROUP BY UNIX_TIMESTAMP(`timestamp`) DIV 300
或者干脆
SELECT AVG(total_rate) as 'rate'
FROM sensor_stats WHERE `timestamp` > now() - interval 24 hour
GROUP BY UNIX_TIMESTAMP(`timestamp`) DIV 300
推荐阅读
- angular - 带有类型参数的 RxJS 订阅调用中的 IDE (VScode) 错误
- python - 是否可以使用 MS Graph API v1.0 创建 MS Teams 会议?
- android - 如何在颤动中将对象编码为 Json
- angular - 如何使用 RxJS WebSocketSubject 重试/重新连接到 Websocket 服务器
- javascript - 为什么我不能在节点中使用“require”内置模块?
- python - 如何在装饰器中使用 pytest 固定装置而不将其作为装饰函数的参数
- apache-poi - Apache POI 更改格式数字
- c++ - 获取最后一个 Windows 更新检查 C++ wuapi
- java - 如何解析 JSON 响应并从已知键中获取值作为输出?
- c# - 在窗口内的用户控件中打开新对话框的最佳做法是什么?