Hive Where子句只允许包含顶级连接词的SubQuery表达式



我需要从表A中获取大于cdc_date的所有记录,该记录存储在另一个tmp_table 中

tmp_table只有一列cdc_date和一条记录。

tableA有超过500万条记录。

我的蜂巢查询

Select count(*) from tableA as a 
where unix_timestamp((concat_ws('-',a.year,a.month,a.day,a.hour)),"yyyy-MM-dd-HH") > 
(select b.cdc_date from tmp_table as b)

我收到以下错误

Unsupported SubQuery Expression 'cdc_date': Only SubQuery expressions that are top level conjuncts are allowed

有人能建议如何激活它吗。

您需要重写sql-

Select count(*) from tableA as a 
Left join tmp_table b
On unix_timestamp((concat_ws('-',a.year,a.month,a.day,a.hour)),"yyyy-MM-dd-HH") > 
b.cdc_date

与单行表的交叉联接:

Select count(*) 
from tableA as a 
cross join tmp_table b
where unix_timestamp((concat_ws('-',a.year,a.month,a.day,a.hour)),"yyyy-MM-dd-HH") > b.cdc_date

最新更新