包装正在运行的查询突然停止处理错误消息:由于内部错误,不支持这种类型的相关子查询模式
在以下脚本中,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
我希望包装一个运行正常的查询不会引入有关内部内容的错误。