Categories : SQL
SQL 예시 - (2) 제품의 월별 판매량 합계 및 매출 합계
SQL 예시
0. SQL 문제
컬럼 | 설명 |
---|---|
product_id | 제품 ID |
sale_date | 판매 일자 (YYYY-MM-DD 형식) |
quantity | 판매 수량 |
price | 제품 * 가격 |
sales
테이블에서 2023년 1월부터 3월까지의 전체 제품의 월별 판매량 합계와 매출 합계를 구하는 쿼리를 작성하시오.
1. 각 단계와 기능을 자세히 설명한 내용
SELECT
DATE_FORMAT(sale_date, '%Y-%m') AS month, -- 연도-월 형식으로 변환
SUM(quantity) AS total_quantity, -- 월별 총 판매량
SUM(quantity * price) AS total_revenue -- 월별 총 매출
FROM sales
WHERE sale_date BETWEEN '2023-01-01' AND '2023-03-31' -- `BETWEEN A AND B`
GROUP BY month -- 월별 그룹화
ORDER BY month; -- 월별로 정렬
- 월별 데이터 추출
DATE_FORMAT(sale_date, '%Y-%m') AS month
- DATE_FORMAT 함수: sale_date를 연도-월 형식(YYYY-MM)으로 변환.
- DATE_FORMAT 함수: sale_date를 연도-월 형식(YYYY-MM)으로 변환.
- 월별 총 판매량 계산
SUM(quantity) AS total_quantity
- SUM(quantity): 각 월에 판매된 수량(quantity)을 모두 합계.
- SUM(quantity): 각 월에 판매된 수량(quantity)을 모두 합계.
- 월별 총 매출 계산
SUM(quantity * price) AS total_revenue
- SUM(quantity * price): 각 판매 기록의 매출을 계산 후 모두 합계.
- SUM(quantity * price): 각 판매 기록의 매출을 계산 후 모두 합계.
- 필터 조건 추가 (1월 ~ 3월 데이터만 포함)
WHERE sale_date BETWEEN '2023-01-01' AND '2023-03-31'
- WHERE : 쿼리에 조건을 추가.
- BETWEEN : sale_date를 2023-01-01부터 2023-03-31 데이터를 선택. (BETWEEN ‘A’ AND ‘B’)
- 데이터 그룹화
GROUP BY month ORDER BY month
- GROUP BY : 데이터를 month별로 묶음.
- ORDER BY : 총 결과를 month 기준으로 오름차순(기본 설정) 정렬.