如何解决从SQL / Impala中的脚本进行JOIN查询
我想为不同的项目创建查询,这些查询都有一个基本脚本,然后每个都有一个自定义脚本。
出于说明目的,假设我有两个带有简化查询的文件:
base_dataset.sql
with client_universe as (
select account_id,activation_dt,suspension_dt
from clientes
where ${product}_flag = 1
)
product_A.sql,features_1 AS (
select accnt_wid,data_1
from client_universe clnt
left join consumption_A A
on clnt.account_id = A.account_id
),features_2 AS (
select accnt_wid,data_2
from client_universe clnt
left join consumption_B B
on clnt.account_id = B.account_id
)
select accnt_wid,suspension_dt,data_1,data_2
from client_universe clnt
left join features_1 f1
on clnt.account_wid = f1.account_wid
left join features_2 f2
on clnt.account_wid = f2.account_wid
)
因此,复合查询是前面两个查询的字符串连接,我想这样称呼。
$ impala-shell -q -"$(cat base.sql) $(cat product_A.sql)" \
--var=product="A"
,然后类似地用于product="B"
。
一方面,这是行不通的,因为cat
-脚本脚本显然与通过-f query-file
传递脚本不同。
此外,这是合并两个脚本文件的基本方法。
是否存在本机SQL / Impala方式来合并这两者?
谢谢。
解决方法
查询的简化版本可以像这样:
select
account_id,activation_dt,suspension_d,data_1,data_2
from clientes clnt
left join consumption_A A
on clnt.account_id = A.account_id
left join consumption_B B
on clnt.account_id = B.account_id
where
${product}_flag = 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。