mysql - SQL按分钟平均值获取温度值

标签 mysql datetime average

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

微 Controller 每分钟发送 45-50 次温度值。

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

数据看起来像这样:

+----------+-----------------+---------------------+
| 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 小时。 我猜这可以通过分组等方式来完成。

最佳答案

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

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')

关于mysql - SQL按分钟平均值获取温度值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20467612/

相关文章:

php - getDbTable()->select()->where 问题 (Zend Framework 1.x)

python - 我尝试创建我的第一个数据库,但出现错误

python - 固定 Pandas 数据框中的日期

c - C 中使用 strtol 逐行读取文本文件

excel - 计算列中空单元格中单元格的平均值

php - 如何将android与phpmyadmin连接

mysql - 为什么这个 LIKE 查询没有返回任何结果?

python - 检查最近n分钟内是否出现过一个值

java - java.util.Date 和 Joda Time API 之间的差异

python - 计算元组列表中第 i 个元素的平均值