JOIN과 집계 함수
실무에서 SQL을 사용할 때는 여러 테이블을 Join한 뒤 COUNT()
, SUM()
, AVG()
같은 집계 함수로 결과를 요약하는 일이 흔합니다.
이를 통해 다음과 같은 질문에 답할 수 있습니다.
- 각 학생이 수강 중인 과목 수
- 각 고객이 만들어 낸 매출액
- 과목별 평균 성적은 얼마인지
JOIN과 집계 함수 예시
예를 들어, 다음과 같은 테이블이 있다고 해봅시다.
students
student_id | name |
---|---|
1 | 민준 |
2 | 서연 |
3 | 지호 |
enrollments
student_id | class_id |
---|---|
1 | A1 |
1 | B2 |
2 | C3 |
아래는 JOIN
과 집계 함수
를 함께 사용하는 예시입니다.
COUNT 집계와 JOIN
SELECT
students.name,
COUNT(enrollments.class_id) AS class_count
FROM students
LEFT JOIN enrollments
ON students.student_id = enrollments.student_id
GROUP BY students.name;
쿼리 결과:
이 쿼리는 각 학생이 수강 중인 과목 수를 반환합니다.
name | class_count |
---|---|
민준 | 2 |
서연 | 1 |
지호 | 0 |
LEFT JOIN
을 사용하면 수강 내역이 없는 학생도 결과에 포함됩니다.COUNT(enrollments.class_id)
는 각 학생이 수강 중인 과목의 개수를 셉니다.
JOIN + 집계 패턴
아래는 자주 쓰이는 Join과 집계 패턴입니다.
목표 | Join 유형 | 집계 함수 |
---|---|---|
관련 항목 개수 세기 | LEFT JOIN | COUNT() |
관련 값 합계 구하기 | JOIN | SUM() |
관련 항목에서 평균 구하기 | JOIN | AVG() |
여러 관계를 한 번에 요약 | 제한 없음 | GROUP BY 와 함께 |
JOIN과 집계를 결합하면 다음을 할 수 있습니다.
- 완전하고 의미 있는 보고서 작성
- 관계 전반의 성과 추적
- 비즈니스 인사이트와 지표 생성
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!