02/23 SQL 문제풀이 - 1789. Primary Department for Each Employee (Leetcode)

Data Architect / Engineer·2024년 2월 23일
2

1일_1SQL

목록 보기
38/63
post-thumbnail

문제

  • LeetCode SQL 문제
  • 1789. Primary Department for Each Employee / Easy
  • 문제 내용 : [링크]


내가 작성한 Query

(select employee_id, department_id
from employee
where primary_flag = 'Y')
union
(select employee_id, department_id
from employee
group by employee_id
having count(*) = 1
order by 1)
  • 부서 소속이 1개인 사원들의 데이터와, 부서 소속이 2개 이상인 데이터를 분리해서 구한 후, UNION 하는 방식으로 접근

  • 부서 소속이 2개 이상인 경우, primary_flag 값이 'Y' 일 때 primary department 이므로, WHERE 조건을 통해 primary_flag= = 'Y' 인 데이터를 필터링하여 출력한다.

  • 부서 소속이 1개인 경우, employee_idGROUP BY 하여 데이터 개수가 1개인 조건을 HAVING 절에 반영하여 필터링한다.

  • 위의 두 데이터를 UNION 해 준다. 중복이 있으면 안되므로, UNION ALL이 아닌, UNION을 해 준다.

  • 🌟 한 테이블 내에서 집계의 방식이 다른 경우, 각각의 방식으로 집계를 한 후 UNION 해주는 방법이 있다.

profile
질문은 계속돼 아오에

0개의 댓글