Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

SQL Основные оконные функции

Антон Лузан Ученик (118), на голосовании 6 месяцев назад
Время, прошедшее с предыдущего вылета Дополните запрос так, чтобы найти разницу во времени между вылетами среди рейсов одной компании. В качестве результирующей выборки выведите идентификаторы компаний (в поле company), время вылета их рейсов (в поле time_out) и время (в поле time_diff), прошедшее с предыдущего вылета в формате ЧЧ-MM-СС. Если это был первый рейс компании, то в поле time_diff нужно вывести "00:00:00".
SELECT company, time_out,
TIMEDIFF( time_out, FIRST_VALUE(time_out) OVER ( -- ... ) ) AS time_diff
FROM Trip
Голосование за лучший ответ
Генадий Петров Ученик (133) 7 месяцев назад
SELECT
company,
time_out,
IFNULL (
TIMEDIFF(
time_out,
LAG(time_out) OVER (
partition by company order by time_out
)
), "00:00:00"
) AS time_diff
FROM Trip
Сергей Кременцов Ученик (169) 6 месяцев назад
Скорее всего ответ будет таким:
SELECT
company,
time_out,
TIMEDIFF(
time_out,
FIRST_VALUE(time_out) OVER (
PARTITION BY company ORDER BY time_out
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW
)
) AS time_diff
FROM Trip
Victor Leonov Ученик (116) 4 месяца назад
SELECT
company,
time_out,
TIMEDIFF(
time_out,
FIRST_VALUE(time_out) OVER (
PARTITION BY company ORDER BY time_out
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW)
) AS time_diff
FROM Trip
Scrum Знаток (372) 3 месяца назад
Теории очень мало в SQL академии по этим темам(( Нифига не понятно.
Задача просто дичь(
Темка Войнов Ученик (198) 1 месяц назад
SELECT company,
time_out,
IFNULL(TIMEDIFF(time_out, LAG(time_out) OVER (PARTITION BY company ORDER BY time_out)), '00:00:00') AS time_diff
FROM Trip;
Похожие вопросы