MySQL计算相邻两行某列差值的方法

  介绍

这篇文章给大家分享的是有关MySQL计算相邻两行某列差值的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

MySQL计算相邻两行某列差值的方法:首先通过【r1。rownum r2=ownum - 1】来判断两条记录是否是前后行,然后再使用TIMEDIFF函数来计算时间差即可。

 MySQL计算相邻两行某列差值的方法

<强> MySQL计算相邻两行某列差值的方法:

首先博主在服务端有一个表来记录司机上报上来的GPS点位信息,表结构如下:

——司机GPS收集表   创建表captainad_driver_gps_position (   id BIGINT NOT NULL auto_increment评论& # 39;主键& # 39;,   business_id BIGINT默认空评论& # 39;业务id # 39;,   device_mac VARCHAR(64)默认空评论& # 39;设备MAC地址& # 39;,   device_imei VARCHAR(64)默认空评论& # 39;设备imei # 39;,   lat_lng VARCHAR(64)默认空评论& # 39;纬经度& # 39;,   capture_time默认时间戳CURRENT_TIMESTAMP评论& # 39;捕获时间& # 39;,   create_time默认时间戳CURRENT_TIMESTAMP评论& # 39;创建时间& # 39;,   update_time默认时间戳CURRENT_TIMESTAMP>选择   (@rownum:=@rownum + 1) rownum,   tab.business_id,   tab.device_mac,   tab.capture_time   从   captainad_driver_gps_position选项卡,   (选择@rownum:=0) r——声明变量   在哪里   1=1   和DATE_FORMAT (   tab.capture_time,   & # 39;Y % - % - % d # 39;   )=& # 39;2019 - 06 - 28 - & # 39;   命令   选项卡。capture_time

基于此,我们将目标SQL给写出来,这里我根据我们的实际业务将语句稍微做了整理,脚本大致如下:

选择   t.business_id,   t.device_mac,   t.capture_time,   t.tdiff   从   (   选择   r1.business_id,   r1.device_mac,   r1.capture_time,   TIMEDIFF (   r2.capture_time,   r1.capture_time   )& # 39;tdiff& # 39;   从   (   选择   (@rownum:=@rownum + 1) rownum,   tab.business_id,   tab.device_mac,   tab.capture_time   从   captainad_driver_gps_position选项卡,   (选择@rownum:=0) r   在哪里   1=1   和DATE_FORMAT (   tab.capture_time,   & # 39;Y % - % - % d # 39;   )=& # 39;2019 - 06 - 28 - & # 39;   命令   tab.capture_time   r1)   左连接(   选择   (@INDEX:=@INDEX + 1) rownum,   tab.business_id,   tab.device_mac,   tab.capture_time   从   captainad_driver_gps_position选项卡,   (选择@INDEX:=0) r   在哪里   1=1   和DATE_FORMAT (   tab.capture_time,   & # 39;Y % - % - % d # 39;   )=& # 39;2019 - 06 - 28 - & # 39;   命令   tab.capture_time   )r2>感谢各位的阅读!关于MySQL计算相邻两行某列差值的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

MySQL计算相邻两行某列差值的方法