MySQL

MySQL - group by에서 where 안 먹힐 때 해결방법! : having 사용

Cong_S 2022. 5. 17. 18:00

 

-- 각 고객별로 주문 금액 평균이 300달러 이상인 데이터만 가져오시오.
select c.first_name, c.last_name, avg(o.amount)
from customers c
left join orders o
	on c.id = o.customer_id 
group by c.id 
where avg(o.amount) > 300 ;
-- group by 한 후의 결과를 가져올 때에는 where이 아닌 having 을 쓴다.

기존에 알던 대로 group by 에 where 을 사용하면 오류가 나게 된다.

 

 

이 때는 아래와 같이 group by 뒤에 having 을 사용하면 해결된다. 

-- 각 고객별로 주문 금액 평균이 300달러 이상인 데이터만 가져오시오.
select c.first_name, c.last_name, avg(o.amount)
from customers c
left join orders o
	on c.id = o.customer_id 
group by c.id having avg(o.amount) > 300 ;
-- group by 한 후의 결과를 가져올 때에는 where이 아닌 having 을 쓴다.

 

having 뒤에 조건문만 작성하면 된다.