我有以下数据:EMPID, NAME, MANAGER_ID
我需要返回:EMPID, NAME, COLLEAGUE_ID
COLLEAGUE_ID
将是与EMP_ID
中的人具有相同管理者的人的列表。
任何帮助都会很棒。即使只是函数类型的名称,我也需要完成此操作。
答案 0 :(得分:1)
听起来基本上像cross join
。但是由于您的表中未包含经理,因此您还需要union all
:
select t1.emp_id, t1.name, t2.emp_id as colleague
from t t1 join
t t2
on t1.manager = t2.manager and t1.emp_id <> t2.emp_id
union all
select t1.emp_id, t1.name, t1.manager
from t;