由于redshift内部错误,因此不支持这种类型的相关子查询模式

时间:2019-06-20 07:46:44

标签: amazon-redshift correlated-subquery

包装正在运行的查询突然停止处理错误消息:由于内部错误,不支持这种类型的相关子查询模式

在以下脚本中,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

我希望包装一个运行正常的查询不会引入有关内部内容的错误。

0 个答案:

没有答案