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;
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;
'MySQL Workbench' 카테고리의 다른 글
[MySQL] SQL 조건문 사용하기 _case, if (0) | 2024.05.14 |
---|---|
[MySQL] SQL null인 데이터를 가져오기, 바꾸기 _ is null, ifnull (0) | 2024.05.14 |
[MySQL] Sub Query 사용하기 (0) | 2024.05.14 |
[MySQL] SQL 데이터 집계함수 사용법 _count(), sum(), max(), min(), avg() (0) | 2024.05.14 |
[MySQL] SQL 문자열 검색에 유용한 like 사용법 (0) | 2024.05.14 |