gpt4 book ai didi

sql - hive 查询 : Ambiguous column reference acct_nbr in stage

转载 作者:可可西里 更新时间:2023-11-01 14:48:03 37 4
gpt4 key购买 nike

我收到“不明确的列引用”

查询:

SELECT stage.acct_nbr 
FROM (SELECT *
FROM mem stage
JOIN (SELECT acct_nbr,
corp_ent_cd,
sub_seq_nbr,
mem_nbr,
Max(cdc_src_last_updt_ts) AS cdc_src_last_updt_ts
FROM mem
WHERE file_nm = 'DLTV.FULL.MES3191.D180423'
GROUP BY acct_nbr,
corp_ent_cd,
sub_seq_nbr,
mem_nbr) c
ON c.corp_ent_cd = stage.corp_ent_cd
AND c.acct_nbr = stage.acct_nbr
AND c.sub_seq_nbr = stage.sub_seq_nbr
AND c.mem_nbr = stage.mem_nbr
AND stage.cdc_src_last_updt_ts = c.cdc_src_last_updt_ts
WHERE stage.file_nm = 'DLTV.FULL.MES3191.D180423') stage;

错误信息:

Error: Error while compiling statement: FAILED: SemanticException [Error 10007]: Ambiguous column reference acct_nbr in stage (state=42000,code=10007)

而如果我选择 * 而不是 select stage.acct_nbr,它会正确执行。

有人可以解决我的问题吗?

最佳答案

问题出在 SELECT * 上。

子查询 c.acct_nbr ,stage.acct_nbr 有两列,所以外层 SELECT 不能 stage.acct_nbr 区分要获取的列。

因此您可以在select 子查询中选择c.acct_nbrstage.acct_nbr

你可以试试这个。

SELECT stage.acct_nbr 
FROM (SELECT c.acct_nbr
FROM mem stage
JOIN (SELECT acct_nbr,
corp_ent_cd,
sub_seq_nbr,
mem_nbr,
Max(cdc_src_last_updt_ts) AS cdc_src_last_updt_ts
FROM mem
WHERE file_nm = 'DLTV.FULL.MES3191.D180423'
GROUP BY acct_nbr,
corp_ent_cd,
sub_seq_nbr,
mem_nbr) c
ON c.corp_ent_cd = stage.corp_ent_cd
AND c.acct_nbr = stage.acct_nbr
AND c.sub_seq_nbr = stage.sub_seq_nbr
AND c.mem_nbr = stage.mem_nbr
AND stage.cdc_src_last_updt_ts = c.cdc_src_last_updt_ts
WHERE stage.file_nm = 'DLTV.FULL.MES3191.D180423') stage;

关于sql - hive 查询 : Ambiguous column reference acct_nbr in stage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50111789/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com