2025. 12. 14. 15:39ㆍSQL
지난 시간까지는 SELECT *를 통해 데이터를 "있는 그대로" 조회하는 법을 익혔다.
하지만 실무에서 상사가 원하는 건 수만 줄의 원본 데이터가 아니다.
"그래서, 이번 달 총매출이 얼만데?", "지금 우리 고객이 몇 명이야?"
이런 질문을 받았을 때, 10만 줄짜리 엑셀 파일을 열고 SUM 함수를 드래그하다가 컴퓨터가 멈추는 식은땀 나는 상황... 상상만 해도 끔찍하다. 😱
오늘은 이런 상황을 타개할 SQL의 강력한 무기, 집계 함수(Aggregation Function)를 실습했다.
단 한 줄의 코드로 수만 건의 데이터를 0.01초 만에 요약하는 마법 같은 경험이었다.
1. "고객이 몇 명이야?" (COUNT)
가장 기본이다. customer 테이블을 다 열어볼 필요 없이, "몇 명인지" 숫자만 딱 알고 싶을 때 쓴다.
SELECT COUNT(*)
FROM customer;

엔터를 치자마자 599라는 숫자가 튀어나왔다. 엑셀 스크롤을 맨 아래까지 내릴 필요가 없다.
💡 비전공자의 깨달음: 별(*)의 의미COUNT(*)는 "빈 칸(NULL)을 포함해서 무조건 한 줄로 쳐서 세어라"는 뜻이다. 반면COUNT(이메일)처럼 특정 컬럼을 지정하면, 이메일이 없는(NULL) 사람은 제외하고 센다. "전체 인원수"를 구할 땐COUNT(*)가 국룰이다.
2. "총매출이 얼마야?" (SUM)
이번엔 돈 계산이다. payment 테이블의 amount(결제액) 컬럼을 싹 다 더해달라고 요청했다.
엑셀의 =SUM()과 똑같지만 속도는 훨씬 빠르다.
SELECT SUM(amount) AS 총매출
FROM payment;

AS 총매출이라고 별명을 붙여줬더니, 결과창 헤더도 깔끔하게 나왔다. 보고서에 바로 캡처해 넣어도 될 수준이다.
3. 평균의 함정과 반올림 (AVG, ROUND) ⭐
"우리 영화들의 평균 상영 시간(length)은?"AVG 함수를 쓰면 되는데, 여기서 작은 문제가 발생했다.
SELECT AVG(length)
FROM film;

결과가 115.272000... 처럼 소수점 이하가 끝도 없이 나온다. 보기 싫다.
이때 필요한 것이 반올림 함수 ROUND다. (소수점 둘째 자리까지만 보여줘!)
SELECT ROUND(AVG(length), 2) AS 평균상영시간
FROM film;

이제야 숫자가 예쁘게 다듬어졌다. 데이터 분석가는 숫자만 뽑는 게 아니라, 남들이 보기 좋게 가공하는 센스도 필요하다는 걸 느꼈다.
4. 범위 확인: 최댓값과 최솟값 (MAX, MIN)
데이터에 이상한 값은 없는지, 범위는 어느 정도인지 파악할 때 유용하다.
가장 비싼 배상금(replacement_cost)과 가장 싼 배상금을 한 번에 조회했다.
SELECT MAX(replacement_cost) AS 최고가,
MIN(replacement_cost) AS 최저가
FROM film;

📝 오늘의 문법 요약 (Cheat Sheet)
통계 낼 때 숨 쉬듯이 쓰는 함수 5총사다. 엑셀 함수랑 이름이 똑같아서 외우기도 쉽다.
| 함수 | 설명 | 예시 |
| COUNT | 행의 개수 세기 | COUNT(*) |
| SUM | 합계 구하기 | SUM(price) |
| AVG | 평균 구하기 | AVG(price) |
| MAX | 최댓값 찾기 | MAX(price) |
| MIN | 최솟값 찾기 | MIN(price) |
| ROUND | 반올림 (자리수 지정) | ROUND(값, 2) |
[데이터 분석 독학기 #7 끝]
'SQL' 카테고리의 다른 글
| 머신러닝의 8할은 전처리? SQL로 지저분한 데이터 예쁘게 다듬기 (문자열/날짜 함수) (0) | 2025.12.15 |
|---|---|
| "김 대리가 이달의 판매왕?" 엑셀 피벗 없이 SQL로 1초 만에 실적 분석하기 (GROUP BY) (0) | 2025.12.14 |
| 뒤죽박죽 데이터가 한눈에 들어오는 기적: SQL 정렬과 검색 (ORDER BY, LIKE) (0) | 2025.12.08 |
| 엑셀 필터 걸다가 퇴근 못할 뻔... SQL WHERE절로 100만 건 데이터 0.1초 만에 찾기 (0) | 2025.12.07 |
| 엑셀이 멈췄다... 비전공자가 SQL로 100만 건 데이터 3초 만에 조회한 썰 (SELECT, FROM) (0) | 2025.12.07 |