Hive ParseException行5:19无法识别表达式规范(state=42000,code=40000)中“SELECT”“MIN”()附近的输入

Hive ParseException行5:19无法识别表达式规范(state=42000,code=40000)中“SELECT”“MIN”()附近的输入,hive,hiveql,Hive,Hiveql,我正在蜂箱上运行以下查询 SELECT a.NDC, a.filetag, b.filetag AS filetag_RMIID1, a.medid, b.MED_REF_FED_LEGEND_IND, b.MED_MEDID_DESC FROM TMPTBL_RMINDC1_MERGED_SORTED_ND a INNER JOIN TMPTBL_RMIID1_MERGED_SORTED_ND b ON a.medid = b.medid WHERE

我正在蜂箱上运行以下查询

SELECT 
  a.NDC,
  a.filetag,
  b.filetag AS filetag_RMIID1,
  a.medid,
  b.MED_REF_FED_LEGEND_IND,
  b.MED_MEDID_DESC
FROM 
  TMPTBL_RMINDC1_MERGED_SORTED_ND a
  INNER JOIN TMPTBL_RMIID1_MERGED_SORTED_ND b ON a.medid = b.medid
WHERE 
  b.filetag = (SELECT MIN(c.filetag) FROM TMPTBL_RMIID1_MERGED_SORTED_ND c WHERE c.medid = a.medid AND c.filetag >= a.filetag)
并且在误差以下

Error: Error while compiling statement: FAILED: ParseException line 
5:19 cannot recognize input near 'SELECT' 'MIN' '(' in expression 
specification (state=42000,code=40000)
请在这方面帮助我。

配置单元仅支持IN/NOT IN、EXISTS/NOT EXISTS IN where子句子查询。在您的查询中,将where条件替换为以下条件,它应该可以工作:

b.filetag in (SELECT MIN(c.filetag) FROM TMPTBL_RMIID1_MERGED_SORTED_ND c 
WHERE c.medid = a.medid AND c.filetag >= a.filetag)
有关配置单元子查询支持的更多详细信息,请参见:

配置单元仅支持IN/NOT IN、EXISTS/NOT EXISTS IN where子句子查询。在您的查询中,将where条件替换为以下条件,它应该可以工作:

b.filetag in (SELECT MIN(c.filetag) FROM TMPTBL_RMIID1_MERGED_SORTED_ND c 
WHERE c.medid = a.medid AND c.filetag >= a.filetag)
有关配置单元子查询支持的更多详细信息,请参见:

感谢@jainik的回答,我也在内部查询中做了更正,如从TMPTBL\u rmid1\u MERGED\u SORTED\u和c内部加入TMPTBL\u RMINDC1\u MERGED\u SORTED\u d在c.medid=d.medid上,其中c.medid=d.medid和c.filetag>=d.filetag中的b.filetag现在正在工作。感谢@jainik的回答,我也在中做了更正内部查询为WHERE b.filetag in SELECT MINc.filetag FROM TMPTBL\u rmid1\u MERGED\u SORTED\u和c内部连接TMPTBL\u RMINDC1\u MERGED\u SORTED\u d on c.medid=d.medid,其中c.medid=d.medid和c.filetag>=d.filetag现在正在工作。