Impala 或 Hive 在其他 SQL 语法中是不是有类似 IN 子句的东西?

Posted

技术标签:

【中文标题】Impala 或 Hive 在其他 SQL 语法中是不是有类似 IN 子句的东西?【英文标题】:Do Impala or Hive have something like an IN clause in other SQL syntaxes?Impala 或 Hive 在其他 SQL 语法中是否有类似 IN 子句的东西? 【发布时间】:2013-11-01 13:18:49 【问题描述】:

Impala 或 Hive 是否有类似于 PL/SQL 的 IN 语句的内容?我正在寻找这样的东西:

SELECT * 
FROM employees
WHERE start_date IN
(SELECT DISTINCT date_id FROM calendar WHERE weekday = 'MON' AND year = '2013');

这将返回 2013 年星期一开始的所有员工的列表。

【问题讨论】:

【参考方案1】:

我应该提到这是一种可能的解决方案,也是我的首选:

SELECT * 
FROM employees emp
INNER JOIN 
    (SELECT 
    DISTINCT date_id
    FROM calendar 
    WHERE weekday = 'FRI' AND year = '2013') dates
ON dates.date_id = emp.start_date;

【讨论】:

【参考方案2】:
select * 
from employees emp, calendar c 
where emp.start_date = c.date_id 
and weekday = 'FRI' and year = '2013';

【讨论】:

【参考方案3】:

hive 0.10 及更低版本当前不支持使用表达式的嵌套查询。你在 hive/impala 上运行什么版本

【讨论】:

以上是关于Impala 或 Hive 在其他 SQL 语法中是不是有类似 IN 子句的东西?的主要内容,如果未能解决你的问题,请参考以下文章

什么是impala,如何安装使用Impala

什么是impala,如何安装使用Impala

什么是impala,如何安装使用Impala

什么是impala,如何安装使用Impala

什么是impala,如何安装使用Impala

hive 或 impala 中的计算表统计信息如何加速 Spark SQL 中的查询?