sql怎么获取每个小时的增加量呢?

目前的思路是获取这个小时 里程的最大值和上个小时的里程最大值的 差
ps:1、数据两分钟生成一次
2、数据只会增大

img

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

img

你只要一个差值,为什么不新建一张表或者任何的存储工具 像redis甚至是文件来存储每个时间点的最大值。

用当前时间减去一小时之前的时间,where语句,后面条件写时间区间,获取到对应时间的mile,然后相减