У меня есть столбец отметки времени в таблице, я хочу найти разницу в каждой последовательной строке в SQL - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть такие данные:

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

Ответы [ 2 ]

0 голосов
/ 20 апреля 2020

Я хочу что-то вроде этого:
date Time_difference 05-03-2019 40 15-04-2019 5 20-04-2018 1 21-04-2018

0 голосов
/ 20 апреля 2020

Если вы используете 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...