Я рассматриваю некоторые из наших запросов Redshift и обнаружил случаи с несколькими уровнями вложенности, как показано ниже:
LEFT JOIN
(
SELECT *
FROM (
SELECT
id,
created_at,
min(created_at) OVER (PARTITION BY id, slug) AS transition_date
FROM table
WHERE status = 'cancelled'
GROUP BY id, Y, Z, created_at
)
WHERE created_at = transition_date
) t1 ON b.id = t1.id
, если бы это был MySQL, я бы сделал что-то подобное, чтобы удалитьодин уровень вложенного выбора:
LEFT JOIN
(
SELECT
id,
created_at,
@tdate := min(created_at) OVER (PARTITION BY id, slug) AS transition_date
FROM table
WHERE status = 'cancelled' and @tdate = bul.created_at
GROUP BY id, Y, Z, created_at
) t1 ON b.id = t1.id
Возможно ли подобное в RedShift?
--- обновление забыло включить GROUP BY во вложенный SELECT, что может повлиять на ответ