【问题标题】:SQL get temperature value by minute averageSQL按分钟平均值获取温度值
【发布时间】:2013-12-09 09:54:41
【问题描述】:

我有一个带有以太网接口的微控制器和连接到它们的 3 个温度传感器。 温度数据被发送到另一台运行脚本的机器,该脚本通过传感器 ID 将值放入 M​​ySQL 数据库。

微控制器每分钟发送 45-50 次温度值。

我正在尝试使用绘图工具获得一个明智的平均分钟数,但我在弄清楚如何获得过去 24 小时的平均公关分钟数时遇到了问题。

数据如下所示:

+----------+-----------------+---------------------+
| sensorID | sensorTempValue | sensorTimeStamp     |
+----------+-----------------+---------------------+
|        3 |             320 | 2013-12-09 09:38:00 |
|        2 |             156 | 2013-12-09 09:38:01 |
|        1 |             360 | 2013-12-09 09:38:02 |
|        3 |             320 | 2013-12-09 09:38:04 |
|        2 |             156 | 2013-12-09 09:38:05 |
|        1 |             360 | 2013-12-09 09:38:06 |
|        3 |             319 | 2013-12-09 09:38:08 |
|        2 |             156 | 2013-12-09 09:38:09 |
|        1 |             360 | 2013-12-09 09:38:10 |
|        3 |             319 | 2013-12-09 09:38:12 |
|        2 |             156 | 2013-12-09 09:38:13 |

......

sensorID 是每个 DS18x20 数字传感器的 ID,sensorTempValue 是它返回的原始数据,因此将该值除以 16 即可得到摄氏温度值。

SELECT sensorTimeStamp, sensorTempValue/16 
FROM (SELECT * 
      FROM temperatureData 
      WHERE sensorTimeStamp > DATE_SUB(now(), INTERVAL 1 DAY) 
      AND sensorID = 2 
      GROUP BY MINUTE(sensorTimeStamp)) 
m order by sensorTimeStamp

这是我得到的最接近的,但这仍然不是整个 23 小时。 我猜这可以通过分组来完成。

【问题讨论】:

  • 我很惊讶 AVG 函数在您的查询中没有出现。这是有原因的吗?
  • 在数据集上运行 AVG 之前,我需要弄清楚如何选择正确的数据集。

标签: mysql datetime average


【解决方案1】:

我认为您正在寻找这样的东西:

select 
 sensorID,  
 DATE_FORMAT(sensorTimeStamp, '%Y-%m-%d %H:%i'),
 (SUM(sensorTempValue)/count(sensorTempValue))/16 
from temperatureData 
where now()-temperatureData.sensorTimeStamp < INTERVAL 1 DAY 
group by sensorID, DATE_FORMAT(sensorTimeStamp, '%Y-%m-%d %H:%i')

【讨论】:

  • 在修改where [code]now()-temperatureData.sensorTimeStamp DATE_SUB(now(), INTERVAL 1 DAY) 后起作用
猜你喜欢
  • 1970-01-01
  • 2020-04-25
  • 2022-10-26
  • 2021-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-02
相关资源
最近更新 更多