MySQL如何计算相邻两行某列差值


本文摘自PHP中文网,作者coldplay.xixi,侵删。

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

【相关学习推荐:mysql教程(视频)】

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

-- 司机GPS收集表

CREATE TABLE captainad_driver_gps_position (

    id BIGINT NOT NULL auto_increment COMMENT '主键',

    business_id BIGINT DEFAULT NULL COMMENT '业务ID',

    device_mac VARCHAR (64) DEFAULT NULL COMMENT '设备MAC地址',

    device_imei VARCHAR (64) DEFAULT NULL COMMENT '设备IMEI',

    lat_lng VARCHAR (64) DEFAULT NULL COMMENT '纬经度',

    capture_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '捕获时间',

    create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

    update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',

    PRIMARY KEY (id),

    KEY `idx_business_id` (`business_id`) USING BTREE

) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '司机GPS收集';

表中记录的数据大致如下:

现在就对按获取GPS位置的时间capture_time在按照时间排序之后,进行前后两条记录计算差值。为了计算两者的差值,那么我们肯定是需要获取到一前一后两条记录的,这里我们可以巧用一个变量来记录当前行的行数,然后随着循环查询每次将行数叠加,以达到行记录的目的,这样一来,我们就能知道哪两条记录是一前一后的了。

阅读剩余部分

相关阅读 >>

mysql数据库优化之索引实现原理与用法分析

mysql找回用户数据的实例详解

mysql optimizer是什么

关于mysql中日志以及备份还原的图文代码详解

如何实现mysql降权操作的详解

mysql索引介绍

什么是mysql innodb事务隔离级别?

关于mysql 实现表连接(左,右,内,全连接)

mysql如何设置客户端为gbk

mysql数据库优化需要遵守的原则

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...