下表显示了哪个部门雇员,哪个部门是其主要部门。 如果雇员只属于某个部门,则其主要国旗将显示N(尽管这是其唯一部门),如果他们有多个部门,则该国旗将标明Y或N。
雇员:
employee_id | department_id | primary_flag |
---|---|---|
1 | 1 | N |
2 | 1 | Y |
2 | 2 | N |
3 | 3 | N |
4 | 2 | N |
4 | 3 | Y |
4 | 4 | N |
预期产出——雇员福利的主要部门——部门——补贴
employee_id | department_id |
---|---|
1 | 1 |
2 | 1 |
3 | 3 |
4 | 3 |
我的解决办法丝毫没有结果。
它为什么不发挥作用?
不存在任何无效的价值观,当我自己管理分局时,它就显示雇员——即部门——不应参与最后产出。
select employee_id, department_id
from Employee
WHERE (employee_id, department_id) not in(
select employee_id, department_id
from (
SELECT employee_id, department_id, primary_flag,
count(employee_id) over (partition by employee_id) as cnt
from employee
) a
WHERE cnt > 1 and primary_flag = n
);
从下文的Joel Coehoorn评论中,他能够得出同样的结果;然而,在LeetCode,他并不为我工作。