개발학습일지

[MySQL] SQL 데이터 그룹하여 데이터 사용하기 _group by, having 본문

MySQL

[MySQL] SQL 데이터 그룹하여 데이터 사용하기 _group by, having

처카푸 2024. 5. 14. 17:01

SQL 데이터 그룹하여 데이터 사용하기 _group by

 

group by

: ~ 별로 묶어서 ... 하자

: 데이터를 집계하는 키워드

: 카테고리컬 데이터의 유형별로 개수를 알고 싶을 때 컬럼에 데이터를 그룹화시켜 사용한다. 

-- 각 작가의 full name 별로 (author_fnmae, author_lname)
-- 해당 작가가 최조로 책을 발행한 년도는 몇년도 입니까?
select author_fname, author_lname, min( released_year ) min_year
from books
group by author_fname, author_lname
order by min_year;

group by

 

having

: group by한 데이터에 조건처리를 하는 경우 사용한다

  (= group by 한 결과에 조건을 붙이고 싶을 때)

-- 출판년도가 2000년 이상인 데이터에서
-- 년도별 stock_quantity 평균 값이 70보다 큰 책들의 
-- 년도와 평균값을 보여주되, 평균값이 큰 것 부터 보여주세요
select released_year, avg( stock_quantity ) avg_stock
from books
--  where = 기존 데이터의 조건
where released_year >= 2000
group by released_year
-- having = group by의 조건
having avg_stock > 70
order by avg_stock desc;

group by 조건 having