조회 실습 로드맵

상품 목록에서 출발해 매출 리포트까지 한 단계씩 확장합니다.

같은 4개 테이블을 두고 WHERE, GROUP BY, JOIN, HAVING을 차례로 더하면 쇼핑몰 운영 질문에 답하는 쿼리로 발전합니다.

WHERE + ORDER BY

상품 목록을 조건으로 좁히기

category = '전자기기' stock > 0 price BETWEEN ...

필터와 정렬로 운영자가 바로 볼 수 있는 목록을 만듭니다.

GROUP BY

카테고리별 상태 요약

COUNT(*) AVG(price) SUM(stock)

개별 상품을 묶어 재고와 가격의 전체 경향을 확인합니다.

JOIN

회원·주문·상품 연결

users → orders orders → order_items order_items → products

정규화로 나뉜 데이터를 다시 연결해 “누가 무엇을 샀는가”를 봅니다.

HAVING + LIMIT

매출·재구매 리포트

status IN (...) HAVING COUNT >= 2 FETCH FIRST 3

운영 지표는 취소·대기 주문을 제외하는 정책까지 함께 담아야 합니다.

매출 쿼리는 상태 정책이 먼저입니다.

대기, 취소, 결제 완료, 배송 완료 중 어느 상태를 매출로 볼지 정하지 않으면 결과가 흔들립니다.

월별 집계는 연도까지 묶는 것이 안전합니다.

실습 데이터는 한 해뿐이지만, 실무 테이블에서는 EXTRACT(YEAR)와 월을 함께 그룹화해야 합니다.