leetcode - 1789번 문제 풀이

2025. 5. 26. 00:25·데이터엔지니어링/SQL
목차
  1. 📋 테이블: Employee
  2. 🎯 문제
  3. 풀이
  4. 🧠 풀이 과정 

📋 테이블: Employee

🎯 문제

각 직원의 주 부서를 구하세요.

조건은 다음과 같습니다

  1. 직원에게 primary_flag = 'Y'인 부서가 있다면 → 그 부서를 주 부서로 간주합니다.
  2. 직원이 부서가 1개뿐이라면, primary_flag = 'N'이어도 그 부서를 주 부서로 간주합니다.
Employee 테이블

입력
+-------------+---------------+--------------+
| 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 primary_flag = 'Y'

UNION

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

 

 

🧠 풀이 과정 

1.먼저, 직원은 여러 부서에 속할 수 있다고 했고 그중에 하나를 주 부서(primary_flag = ‘Y’)로 정한다고 했으니까

    → primary_flag = ‘Y’인 부서만 뽑으면 되겠다고 생각함

2. 그런데 예시를 보니까 어떤 직원은 부서가 하나뿐인데도 primary_flag가 ‘N’으로 되어 있는 경우가 있었음

    → 이런 경우엔 부서가 하나뿐이니까, 그 부서가 자동으로 주 부서겠다고 판단함

3. 그래서 먼저 primary_flag = ‘Y’인 직원들을 먼저 뽑고,

4. 그 다음엔 부서가 하나뿐인 직원들을 따로 찾아서, 그 부서도 주 부서로 간주해서 포함시킴

5. 마지막으로 이 두 결과를 합치면, 모든 직원의 정확한 주 부서만 남게 됨

'데이터엔지니어링 > SQL' 카테고리의 다른 글

leetcode - 1164번 문제 풀이  (0) 2025.05.28
solvesql - 제목이 모음으로 끝나지 않는 영화  (1) 2025.05.27
leetcode - 1731번 문제 풀이  (7) 2025.05.24
리트코드 : 1280. Students and Examinations  (0) 2025.05.01
  1. 📋 테이블: Employee
  2. 🎯 문제
  3. 풀이
  4. 🧠 풀이 과정 
'데이터엔지니어링/SQL' 카테고리의 다른 글
  • leetcode - 1164번 문제 풀이
  • solvesql - 제목이 모음으로 끝나지 않는 영화
  • leetcode - 1731번 문제 풀이
  • 리트코드 : 1280. Students and Examinations
루피처럼
루피처럼
데이터안에서 보물을 찾고 하나씩 스킬업하는 데이터분석가 루피처럼입니다.
  • 루피처럼
    인생은 데이터
    루피처럼
  • 전체
    오늘
    어제
    • 분류 전체보기 (21)
      • 내생각 (2)
        • 회고 (0)
      • 프로젝트 (5)
      • 데이터분석 (1)
        • GA4 (1)
        • 통계 (0)
        • 지표 (0)
        • 방법론 (0)
        • 프로젝트 관리 (0)
      • 시각화 (0)
        • Tableau (0)
      • 데이터엔지니어링 (6)
        • SQL (5)
        • Airflow (1)
        • Bigquery (0)
        • spark (0)
        • hadoop (0)
      • AI툴 소개 (1)
      • 1분 지식 (2)
        • 1분 통계 (1)
        • 1분 클라우드 (0)
        • 1분 지표 (1)
        • 1분 경제 (0)
      • 클라우드 (0)
        • docker (0)
        • gcp (0)
        • aws (0)
      • AI (0)
        • Rag (0)
        • DL (0)
        • ML (0)
        • 생성형 AI (0)
      • 자동화 (0)
      • 심리학 (0)
      • 오늘의 이슈 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SNS브랜딩
    10대sns
    사용자70만명
    z세대브랜딩
    분석프로젝트
    airflow3.0
    나만의이야기
    취준생일기
    데이터분석
    대구산불 #산불피해 #재난대응 #피해자지원 #환경보호
    로그데이터분석
    브이로그추천
    자기만의색깔
    프로덕트데이터분석
    ML
    docekr
    LLM
    리트코드
    sql공부 #python분석 #airflow자동화 #gcp활용 #streamlit대시보드 #시각화능력향상 #실무스킬업 #데이터분석성장기
    투명한남자
    notebooklm
    sql
    직업브이로그
    rag
    부트캠프회고 #데이터분석가되기 #코드잇부트캠프 #커리어전환기 #데이터공부일지
    SQL코테
    고객신뢰
    학생sns
    코딩테스트
    한미통상협의 #관세폐지 #패키지합의 #산업협력 #무역 #경제 #koreaustrade #tariffabolition #tradenegotiations
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
루피처럼
leetcode - 1789번 문제 풀이

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.