hive中的错误(missing EOF at )

本文记录了在Hive 1.3版本下解决SQL子查询错误的过程,包括使用not in与except语法时遇到的问题及最终通过左连接实现正确查询的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

select cid as c from daily_conn where cid not in (select c from top_channel_log where v<>'5.8.7'  and (objlabel='1' or objlabel is null or objlabel='13557')) and v<>'5.8.7' ;

这条语句执行时出现了下面这条错误

Error: Error while compiling statement: FAILED: SemanticException [Error 10249]: Line 1:38 Unsupported SubQuery Expression 'cid': Correlating expression cannot contain unqualified column references. (state=42000,code=10249)

找了好半天,甚至改写了sql,变成如下形式

select cid from daily_conn where v<>'5.8.7' except (select c from top_channel_log where v<>'5.8.7'  and (objlabel=1 or objlabel is null or objlabel=13557)) as b;

Error: Error while compiling statement: FAILED: ParseException line 1:86 missing EOF at 'except' near '20170425' (state=42000,code=40000)
出现了这样的错误,最终改成了

select cid from daily_conn left outer join top_channel_log on daily_conn.cid=top_channel_log.c where daily_conn.v<>'5.8.7' and daily_conn.p_date>=20170423 and daily_conn.p_date<=20170425 and top_channel_log.v<>'5.8.7' and (top_channel_log.objlabel=1 or top_channel_log.objlabel is null or top_channel_log.objlabel=13557);

造成这样的原因是:本人使用的是hive1.3的版本,1.3的版本中支持not in 但是不支持not in的子查询;不支持except的使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值