LC 速查

SQL 50索引 › A5 Advanced Select and Joins 高级查询与连接

LC 1789员工的直属部门Primary Department for Each Employee 简单

Employee 表中员工可属多个部门,primary_flag 标记主部门;只出现在一个部门的员工取该部门,其余取 primary_flag='Y' 的部门。

思路 WHERE 主部门为 Y OR 员工仅一条记录(子查询)。

SELECT employee_id, department_id
FROM Employee
WHERE primary_flag = 'Y'
   OR employee_id IN (
     SELECT employee_id
     FROM Employee
     GROUP BY employee_id
     HAVING COUNT(*) = 1);

数据表:Employee · 关键字:只出现在一个部门的员工取该部门,其余取 primary_flag='Y' 的部门

← 上一题 每位经理的直属员工数量判断三角形 下一题 →