SQL 날짜별 데이터 계산: strftime과 GROUP BY로 연도/월별 건수 구하기

SOCICAL·2025년 1월 19일
0
최근 수정 날짜: 25.01.20

# 내가 겪은 이슈

orders 테이블에서 날짜(order_date)를 기준으로 연도별/월별 주문 건수를 집계해야 하는 상황이 이었다.
처음에는 데이터를 어떻게 그룹화해야 할지 감이 안 잡혔는데, SQL의 strftime 함수와 GROUP BY를 활용해 해결할 수 있었다.

# 해결 방법

  • strftime이란?

    • strftime은 SQLite에서 날짜 데이터를 원하는 형식으로 변환하는 함수이다.

    주요 형식 코드는 아래와 같다.

    코드제목2의미
    %Y연도 (4자리)2025
    %m월 (2자리)01
    %Y-%m연도-월2025-01

# GROUP BY란?

  • 특정 열의 값을 기준으로 데이터를 묶어서 집계 함수(COUNT, SUM, AVG 등)를 적용하는 데 사용된다.

# 작성한 쿼리

  • strftime 함수로 연도와 월 추출 후 그룹화
SELECT 
    strftime('%Y', order_date) AS order_year,
    strftime('%m', order_date) AS order_month,
    COUNT(*) AS order_count
FROM orders
GROUP BY strftime('%Y-%m', order_date);
  • 더 간단한 방법 연도-월 형식을 바로 그룹화도 가능하다.
SELECT 
    strftime('%Y-%m', order_date) AS order_year_month,
    COUNT(*) AS order_count
FROM orders
GROUP BY order_year_month;

# 결과 예시

연도주문 건수
202501120
20250295
202503110

# 배운 점

  • strftime(): 날짜 데이터를 분석하기 쉽게 문자열로 변환하는 데 유용하다.
  • GROUP BY: 데이터를 특정 기준으로 그룹화해 집계할 수 있다.
  • COUNT(*)를 활용해 더 간단히 결과를 구할 수 있었다.

0개의 댓글