介绍
这篇文章给大家分享的是有关MySQL计算相邻两行某列差值的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
MySQL计算相邻两行某列差值的方法:首先通过【r1。rownum r2=ownum - 1】来判断两条记录是否是前后行,然后再使用TIMEDIFF函数来计算时间差即可。
引用>
<强> 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计算相邻两行某列差值的方法