我有一个 MySQL 数据库(用于测试:通过 WAMP),其中包括一堆类似设备的温度集合。现在我想单独计算每个设备的平均温度。我一次可以对一个设备执行此操作,但如果可以同时执行更多操作,将大大减少查询数量。
小型数据库示例:
ID | 记录在 Unix | dev_eui* | 温度 |
---|---|---|---|
0 | 1683528566 | A | 19.8 |
1个 | 1683528567 | A | 20.5 |
2个 | 1683528568 | 乙 | 22.3 |
3个 | 1683528569 | C | 21.0 |
4个 | 1683528570 | 乙 | 24.9 |
5个 | 1683528571 | C | 23.6 |
6个 | 1683528572 | A | 18.4 |
* dev_eui 是唯一标识一个设备的字符串
一个示例查询:
SELECT theInterval,
round(avg(temperature), 4) AS temperature
FROM (
SELECT (RecdAtUnix - (RecdAtUnix % (:interval))) as theInterval,
temperature
FROM Uplinks
WHERE RecdAtUnix >= :start AND RecdAtUnix < :end AND dev_eui = :dev_eui
ORDER BY RecdAtUnix
) AS someData
GROUP BY theInterval ORDER BY theInterval;
此查询(除其他外)返回特定 . 的指定时间间隔内的平均温度dev_eui
。因为dev_eui = A
这将返回整个时间间隔的平均温度 19.5667。dev_eui
(如何)我可以一次计算所有/多个 s 的平均值?s的所有可能值都dev_eui
可以通过另一个表获知。