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과 집계를 결합하면 다음을 할 수 있습니다.
- 완전하고 의미 있는 보고서 작성
- 관계 전반의 성과 추적
- 비즈니스 인사이트와 지표 생성
Quiz
0 / 1
LEFT JOIN을 사용하면, 어떤 수업에도 등록하지 않은 학생이라도 수강 중인 수업 수를 집계할 때 모든 학생을 결과에 포함시킬 수 있다.
○
✕
학습 자료
AI 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
코드 실행
코드 생성
DB 테이블 구조
실행 결과