Mysql 选择查询负一小时

Mysql 选择查询负一小时,mysql,sql,Mysql,Sql,有以下查询: select hr, red from (select hour(event_datetime) hr, max(red_kills) - (select max(red_kills) from vwmatchall where date_format(event_datetime,"%Y-%m-%d %H") = date_format(date_

有以下查询:

select
   hr,
   red  
from
   (select
      hour(event_datetime) hr,
      max(red_kills) - (select
         max(red_kills)  
      from
         vwmatchall  
      where
         date_format(event_datetime,"%Y-%m-%d %H")  = date_format(date_sub(event_datetime, interval 1 hour), "%Y-%m-%d"))    as red  
   from
      vwmatchall  
   where
      date(event_datetime) = '2015-10-09'  
   group by
      hour(event_datetime)) k
数据的结构如下所示:


我们的想法是取给定列的当前最大值,在上面的示例中为red_kills,然后从同一列的最大值中减去它,但是是一小时前。基本上是按小时显示差异。因此,即使一个日期没有所有24小时的数据,它仍然会显示它所拥有的时间的数据。你知道查询出了什么问题吗?

如果你想知道怎么做,那么试着在MySQL中实现lag函数看看这个URL,你就会知道这部分在我看来是错误的:where date\u formatevent\u datetime,%Y-%m-%d%H=date\u formatdate\u subevent\u datetime,间隔1小时,%Y-%m-%d,因为您正在对字符串进行比较,但在equals运算符的每一侧使用不同的格式。