MySQL - вычесть 1-й столбец 1-го ряда со 2-м столбцом 2-го ряда - PullRequest
0 голосов
/ 02 февраля 2019

Я борюсь с Mysql Code, и я понятия не имею, как решить эту проблему.У меня есть два столбца со значением времени, по которым я упорядочил по desc в Mysql Query result.

Мне нужно выяснить разницу между 2-й строкой StateEndTime и 1-й строкой StateStarTtime и т. Д. И отобразить этов новой строке / столбце.Финальный стол должен выглядеть так:

ID          Type         StateStarTtime    StateEndTime   Min Difference

xxx         YYY          03:57             03:59          00:02
xxx         ZZZ          03:53             03:55          00:04
xxx         ZZZ          03:46             03:49          

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

Вы должны получить max(stateendtime), который меньше stateendtime текущей строкии вычтите это из statestarttime:

select 
  t.*,
  left(timediff(
   t.statestarttime, 
   select max(stateendtime) from tablename where stateendtime < t.stateendtime
  ), 5) mindifference
from tablename t
order by t.statestarttime desc
0 голосов
/ 02 февраля 2019
SELECT id,startTime,endTime,type,TIMEDIFF(endTime,startTime) as min_df FROM tasks where 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...