개발공부

[MySQL] group by 의 having 사용법 본문

Database/MySQL

[MySQL] group by 의 having 사용법

mscha 2022. 5. 17. 17:58

GROUP BY 를 해서 나온 결과에 조건을 걸 때는 WHERE 을 사용하면 안되고,

HAVING 을 사용해야 한다.

 

아래의 예시를 보자.

customers 테이블

orders 테이블

각 고객별로 amount 평균이 300 달러 이상인 데이터만 가져오기

select  c.id, c.first_name, c.last_name, c.email, avg(o.amount) as 'AVG'
from customers c
join orders o
	on c.id = o.customer_id
group by c.id having avg(o.amount) >= 300;

위와 같이 avg(o.amount)는 group by 를 해서 나온 결과에 평균을 구한거라 where로 조건을 걸면

문법 오류가 발생한다. 그러므로 group by 절과 함께 having을 사용하여 조건을 걸어야한다.