orders 테이블에서 날짜(order_date)를 기준으로 연도별/월별 주문 건수를 집계해야 하는 상황이 이었다.
처음에는 데이터를 어떻게 그룹화해야 할지 감이 안 잡혔는데, SQL의 strftime 함수와 GROUP BY를 활용해 해결할 수 있었다.
strftime이란?
주요 형식 코드는 아래와 같다.
코드 | 제목2 | 의미 |
---|---|---|
%Y | 연도 (4자리) | 2025 |
%m | 월 (2자리) | 01 |
%Y-%m | 연도-월 | 2025-01 |
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;
연도 | 월 | 주문 건수 |
---|---|---|
2025 | 01 | 120 |
2025 | 02 | 95 |
2025 | 03 | 110 |