[SQL 문제 풀이] Primary Department for Each Employee (각 직원의 주요 부서)

Stupefyee's avatar
May 23, 2025
[SQL 문제 풀이] Primary Department for Each Employee (각 직원의 주요 부서)
Primary Department for Each Employee - LeetCode
Can you solve this real interview question? Primary Department for Each Employee - Table: Employee +---------------+---------+ | Column Name | Type | +---------------+---------+ | employee_id | int | | department_id | int | | primary_flag | varchar | +---------------+---------+ (employee_id, department_id) is the primary key (combination of columns with unique values) for this table. employee_id is the id of the employee. department_id is the id of the department to which the employee belongs. primary_flag is an ENUM (category) of type ('Y', 'N'). If the flag is 'Y', the department is the primary department for the employee. If the flag is 'N', the department is not the primary.   Employees can belong to multiple departments. When the employee joins other departments, they need to decide which department is their primary department. Note that when an employee belongs to only one department, their primary column is 'N'. Write a solution to report all the employees with their primary department. For employees who belong to one department, report their only department. Return the result table in any order. The result format is in the following example.   Example 1: Input: Employee table: +-------------+---------------+--------------+ | 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 | +-------------+---------------+--------------+ Output: +-------------+---------------+ | employee_id | department_id | +-------------+---------------+ | 1 | 1 | | 2 | 1 | | 3 | 3 | | 4 | 3 | +-------------+---------------+ Explanation: - The Primary department for employee 1 is 1. - The Primary department for employee 2 is 1. - The Primary department for employee 3 is 3. - The Primary department for employee 4 is 3.
Primary Department for Each Employee - LeetCode
notion image
직원은 여러 부서에 소속될 수 있습니다. 직원이 다른 부서에 입사할 때는 어느 부서가 주 부서인지 결정해야 합니다. 직원이 한 부서에만 소속된 경우 주 열은 'N'입니다. 모든 직원을 주 부서에 보고할 수 있는 솔루션을 작성합니다. 한 부서에 속한 직원의 경우 유일한 부서를 보고합니다. 결과 테이블을 순서에 상관없이 반환하세요.
 

내가 작성한 쿼리

MySQL, Oracle

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(employee_id)=1)
Share article

stupefyee