Sql 配置单元查询:阶段中的列引用帐户不明确

Sql 配置单元查询:阶段中的列引用帐户不明确,sql,hadoop,hive,hiveql,Sql,Hadoop,Hive,Hiveql,我得到了“不明确的列引用” 查询: SELECT stage.acct_nbr FROM (SELECT * FROM mem stage JOIN (SELECT acct_nbr, corp_ent_cd, sub_seq_nbr, mem_nbr,

我得到了“不明确的列引用”

查询:

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; 
错误消息:

错误:编译语句时出错:失败:SemanticException[错误10007]:阶段中不明确的列引用帐户(状态=42000,代码=10007)

然而,如果我选择*而不是选择stage.acct_nbr,它将无错误地执行


有人能解决我的问题吗?

问题在
SELECT*

子查询
c.acct\u nbr
stage.acct\u nbr
中有两列,因此外部
选择
无法
stage.acct\u nbr
区分要获取的列

因此,您可以在
选择子查询中选择
c.acct\u nbr
stage.acct\u 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;