쇼핑몰 운영에서는 단순 조회뿐 아니라 통계와 분석도 중요하다. 물리 모델과 인덱스가 잘 설계되어 있으면, 이러한 복잡한 쿼리도 충분히 감당할 수 있다.

여기서는 대표적인 예시만 정리한다.

8-1. 월별 매출 통계

SELECT
  DATE_FORMAT(ordered_at, '%Y-%m') AS order_month,
  SUM(total_amount)                 AS monthly_revenue
FROM orders
WHERE order_status = 'COMPLETED'
GROUP BY DATE_FORMAT(ordered_at, '%Y-%m')
ORDER BY order_month;

8-2. 베스트셀러 상품

SELECT
  product_id,
  product_name,
  SUM(order_quantity) AS total_quantity
FROM order_item
GROUP BY product_id, product_name
ORDER BY total_quantity DESC
LIMIT 10;

8-3. VIP 고객 식별

SELECT
  m.member_id,
  m.member_name,
  SUM(o.total_amount) AS total_spent
FROM member m
JOIN orders o ON m.member_id = o.member_id
WHERE o.order_status = 'COMPLETED'
GROUP BY m.member_id, m.member_name
HAVING total_spent >= 10000000
ORDER BY total_spent DESC;

8-4. 재고 부족 상품 확인

SELECT
  product_id,
  product_name,
  stock_quantity
FROM product
WHERE stock_quantity < 5
ORDER BY stock_quantity ASC;

이처럼 잘 설계된 물리 모델과 인덱스, 그리고 적절한 역정규화는 운영 화면과 분석 화면 모두에서 강력한 기반이 된다.