在HiveQL中有没有办法做到这一点:
SELECT ......
from
default.thm_renta_produits_jour rpj
WHERE
rpj.co_societe = '${hiveconf:in_co_societe}'
AND rpj.dt_jour >= (SELECT MIN(dt_jour) FROM default.calendrier WHERE co_an_semaine = '${hiveconf:in_co_an_sem}')
因为当我这样做的时候,我会得到这个错误:
FAILED: ParseException line 51:26 cannot recognize input near 'SELECT' 'MIN' '(' in expression specification
谢谢,
发布于 2013-07-05 18:07:16
配置单元不支持where子句中的子查询,它仅支持sub queries in from clause。
发布于 2013-07-08 17:38:47
配置单元不支持WHERE
子句中的子查询。也许您可以通过将子查询移到JOIN
子句来解决此问题,如下所示:
SELECT
rpj.*
FROM
default.thm_renta_produits_jour rpj
JOIN
( SELECT MIN(dt_jour) AS min_dt_jour
FROM default.calendrier
WHERE co_an_semaine = '${hiveconf:in_co_an_sem}'
) m
WHERE
rpj.co_societe = '${hiveconf:in_co_societe}'
AND rpj.dt_jour >= m.min_dt_jour;
希望这能有所帮助。
发布于 2017-12-02 00:29:46
我知道这是一个老帖子,但以前的答案现在已经过时了。较新版本的配置单元(0.13+)支持where子句的子查询,因此您的查询应该运行。
https://stackoverflow.com/questions/17486124
复制相似问题