我在hive中有下表Emp
,其中包括员工及其特定公司的主管。我们知道主管也是员工,甚至他们也有一名主管。
employee,Supervisor
a,b
b,c
c,d
d,e
我需要编写一个蜂巢查询,以找出员工(a)的主管,即(b)和(b)的主管,即(c)。 我尝试使用以下查询,但它引发了错误。
select *
from Emp
where employee = (select Supervisor from Emp where employee = "a");
任何人都可以帮助我解决这个问题
答案 0 :(得分:1)
我希望这个查询有效:
select e.*
from Emp e
where e.employee = (select e2.Supervisor from Emp e2 where e2.employee = 'a');
(唯一真正的变化是字符串常量的单引号。)
如果Hive对WHERE
子句中的子查询有限制,只需使用JOIN
:
select s.*
from Emp s join
Emp e
on s.employee = e.supervisor
where e.employee = 'a';