group by : 그룹화된 데이터를 기반으로 데이터를 집계하거나 분류하는데 사용
-- ~별로 묶어서 ... 하자 : group by 키워드
-- author_lname 별로 몇권의 책을 썼는지
-- author_lname 과 책의 권수를 보여주세요.
select author_lname, count(author_lname) as book_cnt
from books
group by author_lname;
-- 년도별로 각각 몇권의 책이 출간되었는지
-- 년도와 책의 수를 보여주세요.
select released_year, count(released_year)
from books
group by released_year
order by released_year asc;
group by 로 그룹화된 데이터에 대한 조건을 설정할 때는 having 사용
-- 년도별 stock_quantity 의 평균값이 70보다 큰 책들의
-- 년도와 평균값을 보여주세요.
select released_year, avg(stock_quantity) avg_stock
from books
group by released_year having avg_stock >= 70;
-- 출판년도가 2000년 이상인 데이터에서
-- 년도별 stock_quantity 의 평균값이 70보다 큰 책들의
-- 년도와 평균값을 보여주되 평균값이 큰 것부터 보여주세요.
select released_year, avg(stock_quantity) avg_stock
from books
where released_year >= 2000
group by released_year having avg_stock >= 70
order by avg_stock desc;
'MySQL' 카테고리의 다른 글
[MySQL] null인 데이터 가져오기 is null (0) | 2024.05.14 |
---|---|
[MySQL] Sub Query (0) | 2024.05.14 |
[MySQL] 데이터 집계 함수 count, sum, avg, max, min (0) | 2024.05.14 |
[MySQL] 문자열 검색에 유용한 like (0) | 2024.05.14 |
[MySQL] 데이터를 가공 키워드 distinct, order by, limit (0) | 2024.05.14 |