目前的思路是获取这个小时 里程的最大值和上个小时的里程最大值的 差
ps:1、数据两分钟生成一次
2、数据只会增大
SELECT
c.*,
m.*,
c.mile - m.mile
FROM
(
select max(mile) as mile ,DATE_FORMAT(max(update_date), "%Y-%m-%d %H:00" ) as update_date from car_mile
group BY DATE_FORMAT(update_date, "%Y-%m-%d %H:00" )
order by DATE_FORMAT(update_date, "%Y-%m-%d %H:00" ) desc
)as c
left JOIN (
select max(mile) as mile,DATE_FORMAT(Date_add(max(update_date),interval 1 HOUR), "%Y-%m-%d %H:00" ) as update_date from car_mile
group BY DATE_FORMAT(update_date, "%Y-%m-%d %H:00" )
order by DATE_FORMAT(update_date, "%Y-%m-%d %H:00" ) desc
)as m
on c.update_date = m.update_date
order by c.update_date desc
你只要一个差值,为什么不新建一张表或者任何的存储工具 像redis甚至是文件来存储每个时间点的最大值。
用当前时间减去一小时之前的时间,where语句,后面条件写时间区间,获取到对应时间的mile,然后相减