SQL을 공부하다 보니
단순 SELECT보다 더 중요한 게 데이터를 해석하는 함수 활용 능력이라는 걸 느꼈다.
특히 실무에서 많이 쓰이는
👉 날짜 처리
👉 데이터 타입 변환
👉 윈도우 함수
이 세 가지를 정리해본다 ✍🏻
데이터 분석에서는 "언제"가 정말 중요하다.
가입일, 주문일, 결제일 등 대부분 날짜 기반이다.
SELECT NOW();
👉 현재 날짜 + 시간 반환
실시간 데이터 확인할 때 사용
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');
👉 2026-02-28 형식으로 출력
자주 쓰는 포맷:
%Y → 연도 (4자리)
%m → 월
%d → 일
%H → 시
%i → 분
대시보드용 데이터 가공할 때 자주 사용
SELECT DATEDIFF('2026-03-01', '2026-02-28');
👉 결과: 1
회원 가입 후 며칠 지났는지 계산할 때 유용
SELECT DATE_ADD(NOW(), INTERVAL 7 DAY);
👉 7일 뒤 날짜
데이터 타입이 다르면 연산이 안 된다.
그래서 형 변환은 은근히 많이 쓴다.
SELECT CAST('123' AS UNSIGNED);
👉 문자열 → 숫자 변환
JOIN이나 계산할 때 타입이 다르면 꼭 필요
SELECT CONVERT('123', UNSIGNED);
기능은 CAST와 거의 동일
이건 진짜 데이터 분석 직무 핵심.
GROUP BY는 행을 줄이지만
윈도우 함수는 행은 유지하면서 계산한다.
👉 이 차이를 이해하는 게 중요.
SELECT
name,
ROW_NUMBER() OVER (ORDER BY score DESC) AS rank_num
FROM exam;
👉 점수 높은 순으로 번호 매기기
중복 없이 순위 매길 때 사용
SELECT
name,
RANK() OVER (ORDER BY score DESC) AS ranking
FROM exam;
👉 공동 순위 발생 가능
예: 1, 2, 2, 4
👉 공동 순위 다음 번호를 건너뛰지 않음
예: 1, 2, 2, 3
순위 집계할 때 많이 씀
SELECT
order_date,
SUM(price) OVER (ORDER BY order_date) AS cumulative_sum
FROM orders;
👉 누적합 계산
매출 누적 그래프 만들 때 핵심
이미 COALESCE는 정리했지만
실무에서는 이 함수도 자주 본다.
SELECT NULLIF(10, 10);
👉 결과: NULL
두 값이 같으면 NULL 반환
0으로 나누는 오류 방지할 때 사용
이 세 가지는
데이터 분석 직무에서 거의 기본기라고 느꼈다.