我要选择1小时平均1分钟数据的SELECT。
ex)
id | time | value
1 | 2018-05-16 13:45:59 | 3
1 | 2018-05-16 14:25:39 | 4
1 | 2018-05-16 14:55:39 | 6
1 | 2018-05-16 15:35:19 | 1
我要查看
id | time | value
1 | 2018-05-16 13:00:00 | 3
1 | 2018-05-16 14:00:00 | 5
1 | 2018-05-16 15:00:00 | 1
我该怎么办?
答案 0 :(得分:6)
Date_format()
函数将MySQL日期时间转换为其他指定格式。%Y-%m-%d %H:00:00
转换为日期时间字符串,最多只能是小时级别。Group By
进行计算,并使用Avg()
函数计算平均值。尝试:
SELECT
id,
DATE_FORMAT(time, "%Y-%m-%d %H:00:00") AS hour_time
AVG(value)
FROM your_table
GROUP BY id, hour_time
其他详细信息:
%Y
年,数字,四位数%m
月,数字(00..12)%d
每月的某天,数字(00..31)%H
小时(00..23)有关各种可用格式说明符的完整列表,请参见:https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format
答案 1 :(得分:-1)
select id,
DATE_FORMAT(created_at, "%M %d %Y %H:00:00") time,
avg(value) value
from table
group by DATE_FORMAT(created_at, "%M %d %Y %H:00:00")