Мне было сложно определить правильный вопрос, но у меня есть следующий запрос, ниже которого я смог получить разницу между последовательными строками.
Моя проблема (как показано на моем изображении), когда изменяются icao_address и flight_number (что я хочу), а затем Я хочу, чтобы строка, в которой происходит изменение (изменение icao_address и flight_number), была сброшена в ноль .
Я собираюсь сгруппировать запрос по icao_address и flight_number.
WITH
temptable AS (
SELECT
date(timestamp) as flight_date,
timestamp,
UNIX_SECONDS(timestamp) AS timestamp_unix,
icao_address,
flight_number,
LAG(UNIX_SECONDS(timestamp)) OVER (ORDER BY timestamp) AS value2
FROM
`table`
WHERE
(icao_address = '70C0C7' and flight_number = 'WY144') or (icao_address = '750467' and flight_number = 'AK1311') and
flight_number is not null and
timestamp BETWEEN '2020-01-01'
AND '2020-01-02'),
relation2 AS (
SELECT
flight_date,
timestamp,
timestamp_unix,
timestamp_unix - value2 AS difference,
icao_address,
flight_number
FROM
temptable
)
select *
from relation2
На изображении, в строке 11, под столбцом разницы, я бы хотел, чтобы там был ноль при изменении icao_address и flight_number. Это возможно, или любой другой способ сделать это. Я пытаюсь реализовать дело, но не добиваюсь прогресса.
введите описание изображения здесь