回答问题
select DATE_FORMAT(date_time,'%Y-%m-%d %H:00:00') h, min(value), max(value)
from thetable
group by h
1. 如何间隔 6 小时或 15 分钟做同样的事情。
间隔 15 分钟:
select date_time, min(value), max(value)
from t1
group by round(unix_timestamp(date_time)/(15 * 60))
对于 6 小时间隔更改为 (6 * 60 * 60)
2. 上面的结果没有显示最小值和最大值对应的原始时间戳。如何获得这些。
这样的查询会给你你想要的。但是,例如,如果一个区间内有一些最小值,则获取这么多行,有多少个这样的值
select date_time, value
from t1,
(select DATE_FORMAT(date_time,'%Y-%m-%d %H:00:00') h,
min(value) min, max(value) max
from t1
group by h
) t
where value in (min, max)
and DATE_FORMAT(date_time,'%Y-%m-%d %H:00:00') = h