유저별로 구매한 상품과 가격에 대해 알고 있는
테이블 orders가 있습니다.
먼저, 어떠한 조건 없이
유저별로 구매액의 합산을 리스트로 뽑으려면
select
와 from
절만으로 충분합니다.
select
id,
sum(price)
from
orders
group by
id
from
주문 내역 중에서
select
group by
고객 별로 구매액의 합산을 보여줘
하지만 데이터를 뽑다 보면 단순하게 전체 리스트보다
최소 1개 이상의 조건이 들어가는 경우가 더 많은데요.
그럴 때 사용할 수 있는 것이 having 절과
기본 구문인 where 절입니다.
이 두 개는 각각의 목적이 다릅니다.
제가 이해한 내용 바탕으로 간단하게 비교해봤습니다.
위와 같이 값을 조회할 때 접근 순서가 다른데요,
이렇게 다른 순서는 꽤 다른 결과를 가져옵니다.
예시를 볼까요?
select
id,
sum(price)
from
orders
group by
id
having sum(price) >= 10000
from
주문 내역 중에서
select
group by
고객 별로 구매액의 합산을 보여줘
having
그 합산이 10,000원 이상인 경우만!
select
id,
sum(price)
from
orders
where
price >= 10000
group by
id
from
주문 내역 중에서
where
구매액이 10,000원 이상인 건에 대해서만
select
group by
고객 별로 구매액의 합산을 보여줘