[SQL Study Log 06] SQL함수정리(2)

Kuromi·2026년 2월 28일

SQL

목록 보기
6/7
post-thumbnail

SQL 함수 정리 2️⃣ – 날짜 / 변환 / 윈도우 함수

SQL을 공부하다 보니
단순 SELECT보다 더 중요한 게 데이터를 해석하는 함수 활용 능력이라는 걸 느꼈다.

특히 실무에서 많이 쓰이는
👉 날짜 처리
👉 데이터 타입 변환
👉 윈도우 함수

이 세 가지를 정리해본다 ✍🏻


🌸 1. 날짜 함수 (Date Function)

데이터 분석에서는 "언제"가 정말 중요하다.
가입일, 주문일, 결제일 등 대부분 날짜 기반이다.


NOW() – 현재 날짜/시간

SELECT NOW();

👉 현재 날짜 + 시간 반환

실시간 데이터 확인할 때 사용


DATE_FORMAT() – 날짜 포맷 변경

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');

👉 2026-02-28 형식으로 출력

자주 쓰는 포맷:

  • %Y → 연도 (4자리)

  • %m → 월

  • %d → 일

  • %H → 시

  • %i → 분

    대시보드용 데이터 가공할 때 자주 사용


DATEDIFF() – 날짜 차이 계산

SELECT DATEDIFF('2026-03-01', '2026-02-28');

👉 결과: 1

회원 가입 후 며칠 지났는지 계산할 때 유용


DATE_ADD() – 날짜 더하기

SELECT DATE_ADD(NOW(), INTERVAL 7 DAY);

👉 7일 뒤 날짜


🌸 2. 형 변환 함수 (Type Conversion)

데이터 타입이 다르면 연산이 안 된다.
그래서 형 변환은 은근히 많이 쓴다.


CAST() – 타입 변환

SELECT CAST('123' AS UNSIGNED);

👉 문자열 → 숫자 변환

JOIN이나 계산할 때 타입이 다르면 꼭 필요


CONVERT()

SELECT CONVERT('123', UNSIGNED);

기능은 CAST와 거의 동일


🌸 3. 윈도우 함수 (Window Function)

이건 진짜 데이터 분석 직무 핵심.

GROUP BY는 행을 줄이지만
윈도우 함수는 행은 유지하면서 계산한다.

👉 이 차이를 이해하는 게 중요.


ROW_NUMBER()

SELECT 
  name,
  ROW_NUMBER() OVER (ORDER BY score DESC) AS rank_num
FROM exam;

👉 점수 높은 순으로 번호 매기기

중복 없이 순위 매길 때 사용


RANK()

SELECT 
  name,
  RANK() OVER (ORDER BY score DESC) AS ranking
FROM exam;

👉 공동 순위 발생 가능

예: 1, 2, 2, 4


DENSE_RANK()

👉 공동 순위 다음 번호를 건너뛰지 않음

예: 1, 2, 2, 3

순위 집계할 때 많이 씀


SUM() OVER()

SELECT
  order_date,
  SUM(price) OVER (ORDER BY order_date) AS cumulative_sum
FROM orders;

👉 누적합 계산

매출 누적 그래프 만들 때 핵심


🌸 4. NULL 관련 추가 함수

이미 COALESCE는 정리했지만
실무에서는 이 함수도 자주 본다.


NULLIF()

SELECT NULLIF(10, 10);

👉 결과: NULL

두 값이 같으면 NULL 반환

0으로 나누는 오류 방지할 때 사용


공부하면서 느낀 점

  • 날짜 함수 → 리텐션 분석
  • 윈도우 함수 → 순위 / 누적 매출
  • 형 변환 → 데이터 정합성 유지

이 세 가지는
데이터 분석 직무에서 거의 기본기라고 느꼈다.

profile
Code

0개의 댓글