Kiru - вам нужно преобразовать коррелированный запрос в структуру соединения. Не зная содержания данных ваших таблиц и точного ожидаемого результата, я просто догадываюсь, но вот сваг:
SELECT
Comp_Key,
Comp_Reading_Key,
Row_Num,
Prev_Reading_Date,
Max_X
FROM stage5
JOIN dim_date ON calendar_date BETWEEN '2020-04-01' and '2020-04-15'
JOIN ( SELECT MAX(X) as Max_X, MAX(calendar_date) as date FROM (
SELECT CAST(dateadd(day, 1, Prev_Reading_Date) AS DATE) AS X FROM stage5
cross join
SELECT dim_date.calendar_date from dim_date
) a
) as start_dt ON a.date = dim_date.calendar_date
WHERE Comp_Key =50906055
Это только начальное предположение, но оно может помочь вам начать.
Однако вам, вероятно, лучше переписать этот запрос, чтобы использовать оконные функции, поскольку они являются самым быстрым способом выполнения циклических запросов такого типа в Redshift.