HiveQL:在其中使用SELECT in子句

HiveQL:在其中使用SELECT in子句,hive,hiveql,Hive,Hiveql,在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 = '

在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

谢谢,

配置单元不支持仅支持where子句中的子查询。

配置单元不支持仅支持where子句中的子查询。

配置单元不支持
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;

希望有帮助。

配置单元不支持
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;

希望能有所帮助。

我知道这是一篇老文章,但以前的答案现在已经过时了。更新版本的配置单元(0.13+)支持where子句的子查询,因此您的查询应该运行


我知道这是一篇老文章,但以前的答案现在已经过时了。更新版本的配置单元(0.13+)支持where子句的子查询,因此您的查询应该运行