Этот тип коррелированного шаблона подзапроса не поддерживается из-за внутренней ошибки в красном смещении - PullRequest
0 голосов
/ 20 июня 2019

Перенос работающего запроса неожиданно прекращает работу с сообщением об ошибке: этот тип коррелированного шаблона подзапроса не поддерживается из-за внутренней ошибки

В следующих сценариях 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

Я ожидаю, что упаковка действующего запроса не приведет к ошибкам относительно того, что находится внутри.

...