2021-11-24
CTE(common table expression)语法支持
针对同一个FROM子查询在SQL中出现多次的情况,在创建计划的时候,只对其中一个子查询创建计划,并将结果放到临时表中,其它的子查询直接使用临时表。
我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
针对同一个FROM子查询在SQL中出现多次的情况,在创建计划的时候,只对其中一个子查询创建计划,并将结果放到临时表中,其它的子查询直接使用临时表。
打开_t_gcluster_support_cte 参数,集群支持with as语句。
with customer_total_return as
(select sr_customer_sk as ctr_customer_sk,
sr_store_sk as ctr_store_sk,
sum(SR_STORE_CREDIT) as ctr_total_return
from store_returns, date_dim
where sr_returned_date_sk = d_date_sk
and d_year = 2000
group by sr_customer_sk, sr_store_sk)
select c_customer_id
from customer_total_return ctr1, store, customer
where ctr1.ctr_total_return >
(select avg(ctr_total_return) * 1.2
from customer_total_return ctr2
where ctr1.ctr_store_sk = ctr2.ctr_store_sk)
and s_store_sk = ctr1.ctr_store_sk
and s_state = ‘MI’
and ctr1.ctr_customer_sk = c_customer_sk
order by c_customer_id limit 100;
评论
有用 0
墨值悬赏