Я переписываю сценарии сервера SQL для повторного смещения запросов к базе данных
У меня есть конструкция НАРУЖНОГО ПРИМЕНЕНИЯ
OUTER APPLY
(
SELECT q.*
FROM (
SELECT ROW_NUMBER() OVER(ORDER BY ca.Id DESC) AS rn,
ca.StateProvince,
ca.ZipPostalCode,
ca.ContactId
FROM public.contact_addresses ca
WHERE ca.OrganizationId = <Parameters.DemographicsOrgId>
AND ca.DeletedDate IS NULL
AND ca.TypeId = 7
AND ca.ContactId = cc.Id
) q
WHERE q.rn = 1
) ca
Но Redshift не имеет внешнего применения. Как Ican правильно переписать его с помощью LEFT JOIN?
UPDATE
Я думаю о переписать это так
LEFT JOIN
(
SELECT q.*,
q.rn = 1
FROM (
SELECT ROW_NUMBER() OVER(ORDER BY ca.Id DESC) AS rn,
ca.StateProvince,
ca.ZipPostalCode,
ca.ContactId
FROM public.contact_addresses ca
WHERE ca.OrganizationId = <Parameters.DemographicsOrgId>
AND ca.DeletedDate IS NULL
AND ca.TypeId = 7
AND ca.ContactId = cc.Id
) q
GROUP BY q.rn
) ca
ON ca.rn = 1
Но правильно ли это?