코딩테스트

[Letecode/SQL] Number of Unique Subjects Taught by Each Teacher (no. 2356)

브라우니란 2024. 4. 15. 19:31

 

문제

  • Number of Unique Subjects Taught by Each Teacher
  • Sorting and Grouping

https://leetcode.com/problems/number-of-unique-subjects-taught-by-each-teacher/description/?envType=study-plan-v2&envId=top-sql-50

 

 

 

작성 답안

 

초기 답안

SELECT teacher_id
     , count(*) as cnt
FROM
    (
        SELECT teacher_id
             , subject_id
        FROM Teacher
        GROUP BY teacher_id, subject_id
    )
GROUP BY teacher_id

 

 

최종 답안

SELECT teacher_id
     , count( distinct subject_id ) as cnt
FROM Teacher
GROUP BY teacher_id

 

 

 

핵심 풀이 Point

이 문제를 풀기위해서는 그룹 함수 사용 할 때 DISTINCT 를 사용할 수 있다는 것을 알아야 했다.

물론 이 방법 말고도 서브쿼리와 GROUP BY 를 두 번 사용하면 해결할 수 있지만 이렇게 했을 때, runtime 속도가 훨씬 더 걸렸다.

내 생각엔 GROUP BY와 DISTINCT 시 사용되는 알고리즘이 영향을 미친게 아닐까 싶다.