【问题标题】: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 年星期一开始的所有员工的列表。
【问题讨论】:
标签:
sql
hadoop
plsql
hive
impala
【解决方案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 上运行什么版本