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"절 등을 사용하여 특정 조건에 따라 행들을 연결해야 합니다.