MySQL group by에 의한 조건 처리하는 방법! group by, having 사용법

2023. 12. 18. 15:22Database/MySQL

728x90
반응형

 

 

 

 

 

주어진 데이터는 아래와 같습니다.

 

select *
from books;

 

 

 

 

 


  • 테이블에 존재하지 않는 컬럼에 대한 조건일 경우 처리하는 방법!

특히, group by 일때!! 조건을 처리하는 방법

 

group by 문에 선택된 그룹에 탐색조건을 지정하는 부분이 having으로

group by로 먼저 그룹화가 진행되고 그 다음 조건문이 지정되어야 할 때 where가 아닌 having을 사용합니다.

having은 group by 밑에 작성됩니다.

 

 

-- 연도별 재고의 평균값이 70보다 큰 책들의 연도와 평균값을 보여주세요

 

 

순서 1

 

select *, avg(stock_quantity) as avg_stock
from books
group by released_year;

 

 

순서 2

 

select *, avg(stock_quantity) as avg_stock
from books
group by released_year
having avg_stock >= 70;

 

 

순서 3

 

select released_year, avg(stock_quantity) as avg_stock
from books
group by released_year
having avg_stock >= 70;

 

 

 

 

1. 예제

 

-- 출판연도가 2000년도 이상인 데이터에서 연도별 재고수량의 평균값이 70보다 큰 책들의 연도와 평균값을 보여주세요

 

select *, avg(stock_quantity) as avg
from books
where released_year >= 2000
group by released_year
having avg >= 70;

 

 

 

728x90
반응형