[LeetCode] Primary Department for Each Employee

아르당·2026년 6월 30일

LeetCode

목록 보기
382/561
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

Table: Employee

Column NameType
employee_idint
department_idint
primary_flagvarchar

(employee_id, department_id)는 이 테이블의 기본 키이다.
employee_id는 직원의 id이다.
department_id는 해당 지원이 소속된 부서의 id이다.
primary_flag는 ('Y', 'N') 유형의 ENUM이다. 플래그가 'Y'이면, 해당 부서는 직원의 주 부서이고, 플래그가 'N'이면, 주 부서가 아니다.

직원은 여러 부서에 소속될 수 있다. 직원이 다른 부서에 추가될 때, 해당 직원은 어떤 부서를 주 부서로 할지 결정한다. 직원이 오직 하나의 부서에 있을 경우 주 부서 여부를 나타내는 컬럼은 N이다.

모든 직원과 그들의 주 부서를 보고하는 방법을 작성해라. 한 부서에만 속한 직원의 경우, 해당 부서만 보고하면 된다.

Example

Input:
Employee table:

employee_iddepartment_idprimary_flag
11N
21Y
22N
33N
42N
43Y
44N

Output:

employee_iddepartment_id
11
21
33
43

Explanation:

  • 직원 1의 주 부서는 1이다.
  • 직원 2의 주 부서는 1이다.
  • 직원 3의 주 부서는 3이다.
  • 직원 4의 주 부서는 4이다.

Solved

-- Write your PostgreSQL query statement below
select employee_id, department_id
from Employee
where employee_id in (
    select employee_id
    from Employee
    group by employee_id
    having count(*) = 1
)
or primary_flag = 'Y'
profile
내 마음대로 코드 작성하는 세상

0개의 댓글