если значение даты и времени уникально, что-то вроде этого должно работать
SELECT
CASE
WHEN t.event_type = 'DOWN' THEN 'UP'
ELSE 'DOWN'
END as missing,
prev_ids.line_number
FROM my_table t
INNER JOIN
(SELECT
t.datetime,
MAX(t2.datetime) as previous_datetime,
COUNT(t2.datetime) + 1 as line_number
FROM my_table t LEFT JOIN my_table t2 ON t.datetime > t2.datetime
GROUP BY t.datetime
) prev_ids ON t.datetime = prev_ids.datetime
INNER JOIN my_table as prev
ON prev.datetime = prev_ids.previous_datetime
WHERE prev.event_type = t.event_type
prev_ids - мы получаем предыдущее время даты для каждой записи и подсчитываем предыдущие записи, чтобы получить номер строки
, а затем просто проверяемесли тип события в записи равен предыдущему типу события, то здесь отсутствует