Number of Unique Subjects Taught by Each Teacher

이윤설·2024년 2월 6일

https://leetcode.com/problems/number-of-unique-subjects-taught-by-each-teacher/description/

제출코드 (정답)

SELECT teacher_id, COUNT(DISTINCT subject_id) AS cnt
FROM Teacher
GROUP BY teacher_id;

정리

teacher_id 별로 유일한(distinct) subject_id를 가져오는 문제다.
그러므로 teacher_id = 1인 경우에 매핑되는 subject_id는 총 2개이다.

  • "GROUP BY"는 특정 열(들)의 값이 같은 행끼리 그룹을 만드는 데 사용됩니다. 이 절은 집계 함수(Aggregate functions)와 함께 사용되어, 그룹별로 요약된 정보를 제공합니다.

  • 집계 함수란, COUNT, SUM, AVG, MAX, MIN 등과 같이 여러 행의 값을 하나로 요약하는 함수를 말합니다. "GROUP BY"는 이러한 집계 함수와 함께 사용되어, 각 그룹에 대해 집계 함수를 적용한 결과를 반환합니다.

  • 예를 들어, GROUP BY A는 테이블을 A 열의 값이 같은 행끼리의 그룹으로 나눕니다. 그리고 그 후에 오는 집계 함수는 각 A 그룹 내에서 계산됩니다.

  • 만약 A 객체를 B와 매핑하려면, GROUP BY A를 사용하여 A에 따른 B의 집계 정보를 얻을 수 있습니다. 예를 들어, SELECT A, COUNT(B) FROM table GROUP BY A; 쿼리는 각 A 값에 대해 B의 수를 세어줍니다.

  • 그러나 주의해야 할 점은, "GROUP BY"가 매핑을 생성하는 것은 아닙니다. "GROUP BY"는 단지 데이터를 그룹화하고, 그 그룹에 대한 요약된 정보를 제공하는 것입니다. 매핑이 필요하다면, "JOIN"이나 "WHERE"절 등을 사용하여 특정 조건에 따라 행들을 연결해야 합니다.

profile
화려한 외면이 아닌 단단한 내면

0개의 댓글