MySQL group by에 의한 조건 처리하는 방법! group by, having 사용법
2023. 12. 18. 15:22ㆍDatabase/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
반응형
'Database > MySQL' 카테고리의 다른 글
MySQL 데이터의 조건이 조건이 2개일 때 사용하면 좋은 조건문 if()과 null값을 지정된 값으로 변경하는 ifnull() (1) | 2023.12.18 |
---|---|
MySQL 데이터의 조건문 case when then end(조건이 3개 이상일 때) (0) | 2023.12.18 |
MySQL 조건에 맞는 데이터를 가져오는 방법 where 문 (0) | 2023.12.18 |
MySQL 데이터의 값을 더해주는(합계) 함수 sum()과 평균을 구하는 함수 avg() (0) | 2023.12.18 |
MySQL 서브쿼리(subquery)와 예제 (0) | 2023.12.18 |