MySQL - вычесть 1-й столбец 1-го ряда со 2-м столбцом 2-го ряда

0

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

Мне нужно выяснить разницу между 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          
  • 0
    как вы формально определяете, что значит быть первым или вторым рядом
Теги:

2 ответа

0

Вы должны получить 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
SELECT id,startTime,endTime,type,TIMEDIFF(endTime,startTime) as min_df FROM tasks where 1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню