我在一个表中有时间戳列,我想在SQL中找到每个连续行的差异

  • 本文关键字:SQL 连续 一个 时间戳 mysql
  • 更新时间 :
  • 英文 :


我有这样的数据:

student_id                   date
34                05-03-2019
34                15-04-2019
78                06-12-2018

我想要这种

student_id               date         Time_difference
34                05-03-2019          45
34                15-04-2019          5
78                20-04-2018

如果您使用的是MySQL 8+,那么LEAD可以在这里与DATEDIFF:一起使用

SELECT
student_id,
date,
DATEDIFF(LEAD(date) OVER (ORDER BY date), date) AS Time_difference
FROM yourTable
ORDER BY date;

在早期版本的MySQL上,我们可以使用相关的子查询来代替LEAD:

SELECT
student_id,
date,
DATEDIFF(
(SELECT t2.date FROM yourTable t2 WHERE t2.date > t1.date
ORDER BY t2.date LIMIT 1),
date) AS Time_difference
FROM yourTable t1
ORDER BY date;

我想要这样的东西:
date Time_difference2019年3月5日402019年4月15日52018年4月20日121-04-2018

最新更新