분석가를 위한 SQL 과정: 빠르게 선택하고 배우고 적용하기
Source: Dev.to
분석가‑중심 SQL vs. 백엔드‑엔지니어링 SQL
- 분석가 SQL: 지저분한 데이터를 읽고, 신뢰할 수 있는 지표를 만들며, 다른 사람이 재현하고 감사할 수 있는 결과를 전달한다.
- 백엔드 SQL: 완벽한 스키마 설계, 인덱스 튜닝, 저장 프로시저 작성 등을 담당한다. 이는 분석가가 처음 시작할 때는 낮은 우선순위이다.
시작 단계에서 낮출 수 있는 항목
- 깊은 정규화 이론
- 저장 프로시저와 UDF(필요한 경우가 아니면)
- 고급 성능 튜닝(나중에 학습)
코스가 실제 쿼리 50개도 작성하기 전에 데이터베이스 내부 구조에 몇 주를 할애한다면, 분석가에게 최적화된 코스가 아닐 가능성이 높다.
직무‑관련 학습 경로 (플랫폼에 관계없이)
1주차 – 쿼리 기본
SELECT,WHERE,ORDER BY,LIMIT- 버킷팅을 위한
CASE WHEN - 기본 집계:
COUNT,SUM,AVG,MIN/MAX
2주차 – 조인 & 데이터 형태
INNER,LEFT, 그리고FULL OUTER가 필요할 때DISTINCT와ROW_NUMBER()를 활용한 중복 제거- 메트릭을 부풀리지 않으면서 다대다 조인 처리
3주차 – 분석 패턴
- 윈도우 함수:
ROW_NUMBER,LAG/LEAD, 누적 합계 - 코호트와 유지율(가입 주/월 기준)
- 퍼널 쿼리(단계 완료)
4주차 – 신뢰성 & 전달
- 쿼리 가독성: CTE, 명명 규칙, 일관된 포맷팅
- 정상성 검사와 조정
- 결과를 BI 도구 / 노트북으로 내보내기
주관적 의견: 윈도우 함수는 “쿼리를 할 수 있다”와 “분석을 할 수 있다”를 구분하는 경계선이다. 윈도우 함수를 다루지 않는 분석가‑중심 코스는 여러분을 충분히 강력하게 만들지 못한다.
유지율 분석 – 재사용 가능한 패턴
-- PostgreSQL syntax
WITH cohorts AS (
SELECT
user_id,
DATE_TRUNC('month', created_at) AS cohort_month
FROM users
),
activity AS (
SELECT
e.user_id,
DATE_TRUNC('month', e.event_at) AS activity_month
FROM events e
GROUP BY 1, 2
),
cohort_activity AS (
SELECT
c.cohort_month,
a.activity_month,
COUNT(DISTINCT c.user_id) AS active_users
FROM cohorts c
JOIN activity a
ON a.user_id = c.user_id
AND a.activity_month >= c.cohort_month
GROUP BY 1, 2
),
cohort_size AS (
SELECT
cohort_month,
COUNT(*) AS cohort_users
FROM cohorts
GROUP BY 1
)
SELECT
ca.cohort_month,
ca.activity_month,
ca.active_users,
cs.cohort_users,
ROUND(1.0 * ca.active_users / cs.cohort_users, 4) AS retention_rate
FROM cohort_activity ca
JOIN cohort_size cs USING (cohort_month)
ORDER BY 1, 2;
왜 중요한가
- 가독성: CTE를 사용해 로직을 논리적인 단계로 나눈다.
- 정확성:
COUNT(DISTINCT …)로 중복 계산을 방지한다. - 유연성: 주간 코호트나 다른 “활동” 정의에도 쉽게 적용할 수 있다.
몇 주 안에 이 수준의 쿼리를 작성하도록 도와주지 못한다면, 그 코스는 분석가‑우선이 아니다.
올바른 코스 선택 – 체크리스트
- 실제 데이터셋을 사용하나요?
- 초기에 윈도우 함수와 CTE를 가르치나요?
- 연습문제가 채점되고 반복 가능한가요?
- 다이얼렉트(Postgres, BigQuery, MySQL 등)를 명확히 설명하나요?
- 여러분이 가진 시간 안에 완료할 수 있나요?
플랫폼 추천
- DataCamp – 짧고 인터랙티브한 연습을 통해 근육 기억을 빠르게 키우기에 강점이 있다.
- Udemy – 더 넓은 카탈로그가 필요하고 특정 도구(Postgres, BigQuery, SQL Server 등)에 맞추고 싶을 때 좋다. 강사 품질과 리뷰를 꼼꼼히 확인하라.
- Coursera – 장기간, 인증 중심의 코스를 선호하고 체계적인 진행을 원하는 학습자에게 적합하다.
핵심 요약: 하나의 플랫폼을 정하고, 단일 트랙을 끝까지 수강한 뒤, 자신이 관심 있는 데이터셋(업무 데이터, 공개 데이터, 사이드 프로젝트 등)에 바로 적용하라. “적용” 단계가 코스를 실제 분석가의 레버리지로 바꾼다.