본문 바로가기

프롤로그 — 먼저 결과를 보여드립니다

프롤로그 — 먼저 결과를 보여드립니다

이 책은 SQL을 설명하기 전에 결과를 먼저 보여줍니다. 이유는 하나입니다. SQL은 결과를 머릿속에 그리는 순간 이미 절반이 완성되기 때문입니다.

지금부터 두 가지를 보여드립니다. 위니브 카페 데이터를 분석한 결과입니다. 코드가 뭔지 몰라도 됩니다. 결과 표만 먼저 눈에 익혀두세요.

첫 번째 — 월별 매출 현황

카페를 운영하는 사람이라면 가장 먼저 보고 싶은 숫자입니다. "이번 달 매출이 얼마지? 지난달보다 나아졌나?" 이런 표를 원했습니다.

월총매출주문건수평균단가
1월35,430,00046770,217.39
2월15,599,50046339,119.56
3월38,395,00049783,571.42
4월94,032,100462,044,176.08
5월11,990,00044272,500

그래서 이렇게 썼습니다.

SELECT 월,
       SUM(금액) AS 총매출,
       COUNT(*) AS 주문건수,
       AVG(금액) AS 평균단가
FROM 판매정보
WHERE 연도 = 2024
GROUP BY 월
ORDER BY 월;

두 번째 — 카테고리별 매출 분석

"우리 카페에서 뭐가 제일 잘 팔리지?" 이런 표를 원했습니다.

카테고리판매건수총매출
전자기기116186,877,500
주변기기1158,514,000

그래서 이렇게 썼습니다.

SELECT 카테고리,
       COUNT(*) AS 판매건수,
       SUM(금액) AS 총매출
FROM 판매정보
GROUP BY 카테고리
HAVING COUNT(*) >= 100
ORDER BY 총매출 DESC;

지금 이 코드가 암호처럼 보인다면 정상입니다. 지금 이 코드를 이해할 필요는 없습니다. 이 책을 다 읽고 나면 이 코드가 한 줄씩 읽힙니다. 더 정확히는 이렇게 됩니다.

원하는 표가 머릿속에 그려지는 순간, 어떤 줄을 어떻게 써야 하는지 자연스럽게 떠오릅니다.

그게 이 책이 목표하는 지점입니다.

SQL을 배우는 두 가지 방법

방법 A — 명령어부터 배우는 방식

  • SELECT가 뭔지 배운다
  • → WHERE가 뭔지 배운다
  • → GROUP BY가 뭔지 배운다
  • → 언젠가 조합해서 써본다

대부분의 SQL 책이 이 방식입니다. 배우다 보면 "이걸 언제 어디에 쓰는 거지?" 하는 막막함이 옵니다.

방법 B — 결과부터 생각하는 방식

  • 원하는 표를 먼저 그린다
  • → 그 표를 만들기 위해 필요한 원칙을 배운다
  • → 바로 써본다

이 책의 방식입니다. 매 챕터가 이렇게 시작합니다.

"이런 결과를 원한다면, 이렇게 쓰면 됩니다."

이 책이 담은 것과 담지 않은 것

SQL에는 수백 개의 명령어와 함수가 있습니다. 이 책은 그중 딱 6가지만 다룹니다. 그리고 6가지 방법에서 가장 중요한 내용들만 다루게 됩니다.

원칙명령어한 줄 역할
1SELECT어떤 열을 볼까
2FROM어느 테이블에서
3WHERE어떤 행만
4ORDER BY어떤 순서로
5GROUP BY묶어서 집계하면
6HAVING집계 후 조건은

제 경험상 일반적인 실무를 보시는 분이라면 이 6가지면 실무에서 원하는 데이터의 80%를 꺼낼 수 있습니다. 나머지 20%는 에필로그에서 Claude와 함께 해결합니다.

담지 않은 것들, 예를 들어 JOIN, 서브쿼리, 윈도우 함수 같은 것들은 다음 책에서 다룹니다.

처음부터 다 알려주는 책보다, 이 책 한 권을 끝냈을 때

"나 이제 SQL 쓸 수 있어" 라고 말할 수 있는 책이 낫습니다.

이 책의 실습 무대

모든 예제는 하나의 데이터로 진행합니다.

위니브 카페 (Weniv Café)

서울 · 경기 지역 25개 매장을 운영하는 커피 프랜차이즈. 영업한 지 이제 2달, 고객 500명, 주문 2,400건, 상품 20종을 판매하고 있습니다.

지금 테이블은 단 두 개입니다.

  • 고객정보: 이름, 나이, 등급, 지역
  • 판매정보: 메뉴, 금액, 날짜, 고객번호

복잡하지 않습니다. 실제 분석 현장에서 마주치는 질문들을 이 두 테이블로 전부 재현합니다.

등장인물

  • 박지수 팀장
    • 위니브 카페 데이터분석팀 팀장. SQL 경력 7년. 민서에게 미션을 주고 방향을 잡아줍니다.
  • 김민서
    • 오늘 첫 출근한 신입 분석가. 독자 본인입니다. SQL은 들어봤지만 실전은 처음입니다.

실습 환경

설치가 필요 없습니다. 브라우저 하나면 됩니다.

  • https://sql.weniv.co.kr/ 접속 → 바로 시작
  • 책 전체의 샘플 데이터는 [깃허브 링크]에서 내려받을 수 있습니다.
  • 붙여넣기 한 번이면 준비 끝입니다.

만약 SQL의 구조가 어려우신 분들은 https://claude.ai/public/artifacts/15fb1793-c6a8-4fdd-8afb-4507624bfcda 이 사이트를 참고해 보세요. 다만 이 내용은 향후 업데이트를 통해 완성될 예정입니다.

시작하기 전 한 가지

SQL을 배우는 데 재능은 필요 없습니다. 필요한 것은 딱 하나입니다.

"나는 이런 결과를 원한다" 는 생각.

그 생각이 있으면, 코드는 따라옵니다.

자, 시작합니다.

💻 김민서

(첫 출근 아침, SQL 에디터를 열며) 일단 ... 이 테이블이 어떻게 생겼는지부터 봐야겠지?

▶ 준비 — SQL을 쓰기 전에 딱 한 챕터만

프롤로그 — 먼저 결과를 보여드립니다 - SQL 에센셜 | 위니버시티