이 챌린지에서는 지금까지 배운 GROUP BY 문에 대한 모든 것을 적용하여 그룹화와 집계가 필요한 실제 시나리오를 해결해 보겠습니다. GROUP BY 챌린지에 도전하며 문제 해결 능력을 키워보세요!
챌린지 시나리오
•
다양한 제품을 온라인으로 판매하는 전자상거래 회사에서 일한다고 상상해보세요. 특정 기간 동안 다양한 제품 카테고리의 판매 성과에 대한 통찰력을 제공하는 것이 과제입니다. 여기서 GROUP BY 기술이 활용됩니다.
챌린지 #1: 카테고리별 매출 분석
•
첫 번째 챌린지는 각 제품 카테고리별 총 수익을 나타내는 보고서를 생성하는 것입니다. 또한, 각 카테고리별 평균 판매 수량도 계산해야 합니다.
◦
SELECT category, SUM(revenue) AS total_revenue, AVG(quantity_sold) AS average_quantity_sold FROM sales GROUP BY category;
챌린지 #2: 월별 매출 추세 분석
•
다음 챌린지는 특정 연도의 월별 매출 추세를 분석하는 것입니다. 각 월의 총 수익을 제시하여 계절별 판매 패턴을 식별하도록 합니다.
◦
SELECT EXTRACT(MONTH FROM order_date) AS month, SUM(revenue) AS total_revenue FROM sales WHERE EXTRACT(YEAR FROM order_date) = 2023 GROUP BY month ORDER BY month;
챌린지 #3: 최고 판매 제품 식별
•
이 챌린지에서는 판매 수량을 기준으로 최고 판매 제품을 식별하는 것입니다. 상위 5개 제품과 해당 카테고리 목록을 제공해야 합니다.
◦
SELECT product_id, product_name, category, SUM(quantity_sold) AS total_quantity_sold FROM sales GROUP BY product_id, product_name, category ORDER BY total_quantity_sold DESC LIMIT 5;
챌린지 #4: 월별 비교
•
마지막 챌린지는 올해 1월과 7월의 총 수익을 비교하는 것입니다. 결과를 나란히 표시해야 합니다.
◦
SELECT EXTRACT(MONTH FROM order_date) AS month, SUM(CASE WHEN EXTRACT(MONTH FROM order_date) = 1 THEN revenue ELSE 0 END) AS jan_revenue, SUM(CASE WHEN EXTRACT(MONTH FROM order_date) = 7 THEN revenue ELSE 0 END) AS jul_revenue FROM sales WHERE EXTRACT(YEAR FROM order_date) = EXTRACT(YEAR FROM CURRENT_DATE) AND EXTRACT(MONTH FROM order_date) IN (1, 7) GROUP BY month;
축하합니다! GROUP BY 기술을 시험하는 일련의 챌린지를 해결했습니다! 이 시나리오들은 실제 데이터 분석 환경에서 마주칠 수 있는 과제 유형을 시뮬레이션합니다. 그