Перенос работающего запроса неожиданно прекращает работу с сообщением об ошибке: этот тип коррелированного шаблона подзапроса не поддерживается из-за внутренней ошибки
В следующих сценариях myschema.TX_By_Subject является представлением представления.
Я попытался запустить скрипт, извлекая код представлений и заменяя все ссылки на представления этим кодом.
Результат тот же, первый запрос (1) выполняется нормально, если вместо ссылок на представления используется базовый код представлений, но после того, как эта часть обернута для вычисления ntile, Redshift внезапно захлебывается и находит некоторые неподдерживаемые коррелированные подзапросы.
Следующий запрос (1) работает нормально:
select
v_m_name as name
,usr_id as user_id
,V_m_id || usr_id AS user_id_per_merchant
,SUM(v_amt) sales_amt
,count(*) txn_count
from
myschema.TX_By_Subject
where
v_tx_id is not null and v_tx_id <> ''
and
v_subject =
'Example Comp'
and
DT >=
to_date('2017-01-01', 'yyyy-mm-dd')
AND
DT <=
to_date('2019-04-30', 'yyyy-mm-dd')
GROUP BY 1,2,3
Но после упаковки для добавления аналитической функции ntile неожиданно находит коррелированный подзапрос:
select
q.*, ntile(10) over(partition by q.name order by q.sales_amt desc)
from
(
select
v_m_name as name
,usr_id as user_id
,V_m_id || usr_id AS user_id_per_merchant
,SUM(v_amt) sales_amt
,count(*) txn_count
from
myschema.TX_By_Subject
where
v_tx_id is not null and v_tx_id <> ''
and
v_subject =
'Example Comp'
and
DT >=
to_date('2017-01-01', 'yyyy-mm-dd')
AND
DT <=
to_date('2019-04-30', 'yyyy-mm-dd')
GROUP BY 1,2,3
) q
Я ожидаю, что упаковка действующего запроса не приведет к ошибкам относительно того, что находится внутри.