如何解决具有不等式相关谓词的不受支持的聚合子查询
我是Impala的新手-当我们如下联接两个表时,我们收到以下错误消息。 Impala不支持相关子查询的> = -关于如何实现的任何建议
CREATE TABLE database.test_dve (
campo1 INT,campo2 TIMESTAMP,campo3 INT
)
STORED AS PARQUET;
insert into database.test_dve values(1,'2019-09-30',1);
insert into database.test_dve values(2,1);
insert into database.test_dve values(3,1);
CREATE TABLE database.test_dve2 (
campo1 INT,campo2 TIMESTAMP
)
STORED AS PARQUET;
insert into database.test_dve2 values(1,'2019-10-30');
select *
from database.test_dve a
WHERE 0 >= (SELECT count(*) FROM database.test_dve2 b
WHERE a.campo1 = b.campo1
AND CAST(from_timestamp(a.campo2,'yyyyMM') as INT) >= CAST(from_timestamp(b.campo2,'yyyyMM') as INT)
);
错误消息
[HY000] [Cloudera] [ImpalaODBC](110)在Impala中执行查询时出错:[HY000]:AnalysisException:具有不等于相关谓词的不受支持的聚合子查询:CAST(from_timestamp(a.campo2,'yyyyMM' )AS INT)> = CAST(from_timestamp(b.campo2,'yyyyMM')AS INT)
谢谢
解决方法
尝试将其替换为not exists
:
select *
from database.test_dve a
WHERE NOT EXISTS (SELECT 1
FROM database.test_dve2 b
WHERE a.campo1 = b.campo1 AND
CAST(from_timestamp(a.campo2,'yyyyMM') as INT) >= CAST(from_timestamp(b.campo2,'yyyyMM') as INT)
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。