首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HiveQL :使用SELECT in子句WHERE

HiveQL :使用SELECT in子句WHERE
EN

Stack Overflow用户
提问于 2013-07-05 18:00:52
回答 3查看 3.4K关注 0票数 0

在HiveQL中有没有办法做到这一点:

代码语言:javascript
运行
复制
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}')

因为当我这样做的时候,我会得到这个错误:

代码语言:javascript
运行
复制
FAILED: ParseException line 51:26 cannot recognize input near 'SELECT' 'MIN' '(' in expression specification

谢谢,

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-05 18:07:16

配置单元不支持where子句中的子查询,它仅支持sub queries in from clause

票数 3
EN

Stack Overflow用户

发布于 2013-07-08 17:38:47

配置单元不支持WHERE子句中的子查询。也许您可以通过将子查询移到JOIN子句来解决此问题,如下所示:

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2017-12-02 00:29:46

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

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SubQueries#LanguageManualSubQueries-SubqueriesintheWHEREClause

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17486124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档