我有这样的数据:
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