mysql - 如何每分钟获得聚合平均结果

标签 mysql sql

我确实每分钟收集一次数据,格式如下

id(自增)| ts(时间戳 - *nix 格式)|温度( float )

通过查询:

select day(ts), avg(temp) as avg_1 from scores group by day(ts) order by day(ts) asc

自数据填充以来,我得到临时列的平均值。

通过查询

select hour(ts), avg(temp) as avg_1 from scores group by hour(ts) order by hour(ts) asc

我得到从 0 到 23 的结果

我想得到的是所有范围内温度的聚合平均值的结果,但一天中的每一分钟 (0 - 1439),以查看每分钟温度的变化(但所有的平均值一天中第 0、1、2 分钟的日子)

最佳答案

如果要查找一天中每一分钟的平均温度,我将执行以下查询:

select 
    EXTRACT(HOUR FROM ts) as hour_, 
    EXTRACT(MINUTE FROM ts) as minute_, 
    avg(temp) as temp_
from scores
 group by EXTRACT(HOUR FROM ts), EXTRACT(MINUTE FROM ts)

这样做,您将能够分析所有天中每对小时/分钟的温度。

要将所有内容表示为分钟,只需执行以下操作:

select 
    (A.hour_ * 60) + A.minute_ as time_,
    A.*
 from (    
    select 
       EXTRACT(HOUR FROM ts) as hour_, 
       EXTRACT(MINUTE FROM ts) as minute_, 
       avg(temp) as temp_
      from scores
        group by EXTRACT(HOUR FROM ts), EXTRACT(MINUTE FROM ts)

) A 

关于mysql - 如何每分钟获得聚合平均结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57137450/

相关文章:

php - 多次更新登录用户表中的字段

php - 从输出的数字中减去%并显示新的数字

mysql - 将 MySQL 子查询的结果保存到 TEMPORARY TABLE 中的开销(而不是复制子查询)?

php - 通过 PHP 调用页面加载的随机记录,通过 AJAX 动态显示结果

sql - 为什么我的 Azure 应用服务备份无法连接到我的 Azure SQL 数据库?

mysql - 每个 GROUP BY 表达式必须包含不是外部引用的列

c# - 如何将数据从一个数据库导入到另一个数据库

mysql - 需要获取 MySQL 结果

java - 如何注入(inject)自定义准备语句参数

mysql - 如何检查 MySQL 脚本中前面语句的错误?