본문으로 건너뛰기
SQL 기초집LESSON 10

집계 함수: COUNT, SUM, AVG, MIN, MAX

난이도입문 → 초급
예상 시간30분
선수지식이전 강의

10강. 집계 함수: COUNT, SUM, AVG, MIN, MAX

1. 이번 강의에서 해결할 문제​

모든 행을 백엔드로 가져와 Python에서 합계를 내면 데이터베이스의 집계 기능을 활용하지 못합니다. 데이터가 있는 곳에서 요약값을 계산합니다.

2. 학습 목표​

3. 핵심 개념​

집계 함수는 여러 입력 행을 하나의 값으로 줄입니다. COUNT(*)는 행 수, COUNT(column)은 NULL이 아닌 값 수입니다. SUM과 AVG는 NULL을 제외하며 입력 행이 없을 때 NULL일 수 있습니다.

4. 단계별 SQL 예시​

대상 테이블: games (읽기 전용)
파일 경로: C:\dev\game-ranking-db\sql\10-aggregates.sql

sql/10-aggregates.sql
SELECT
COUNT(*) AS game_count,
SUM(duration_seconds) AS total_seconds,
ROUND(AVG(duration_seconds), 1) AS average_seconds,
MIN(duration_seconds) AS shortest_seconds,
MAX(duration_seconds) AS longest_seconds
FROM games;

SELECT
COUNT(*) AS player_count,
COUNT(display_name) AS players_with_display_name
FROM players;

SELECT COALESCE(AVG(duration_seconds), 0) AS safe_average
FROM games
WHERE started_at >= '2099-01-01';
PowerShell · 실행 순서
sqlite3 -header -box .\data\game_ranking.db ".read .\sql\10-aggregates.sql"

5. 쿼리가 동작하는 이유​

첫 SELECT는 games 전체를 하나의 그룹으로 취급합니다. COUNT 열 버전은 display_name NULL을 제외합니다. COALESCE는 첫 인자가 NULL이면 0을 선택해 API 응답을 안정적으로 만듭니다.

6. 자주 하는 실수와 안전한 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

집계 함수: COUNT, SUM, AVG, MIN, MAX 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“집계 함수: COUNT, SUM, AVG, MIN, MAX”에서 다음 단계로 넘어가기 전에 확인할 핵심은 무엇인가요?
  2. 문제 2‘COUNT(column)을 전체 행 수로 사용’ 상태에 관한 “집계 함수: COUNT, SUM, AVG, MIN, MAX” 본문의 설명으로 가장 알맞은 것은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

10강. 집계 함수: COUNT, SUM, AVG, MIN, MAX 미완료 상태