Database/MySQL

[MySQL] 데이터 그룹화 하기, group by 사용법, group by 에서 having 사용법

Mei99 2024. 5. 14. 13:09

group by

- 중복된 데이터를 그룹화 하는 키워드

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

주로, COUNT(), MAX(), MIN(), SUM(), AVG() 등과 같은 집계 함수와 함께 사용.


집계함수 사용법 바로가기

 

MySQL group by, having 사용법

group by

 

문제) author_lname별로 몇 권의 책을 썼는지 작가 이름과 책 권수 가져오기

① 데이터를 author_lname 으로 그룹화 하기

 

② 묶어준 그룹 안에서 각 데이터들의 개수 구하기 + 해당 컬럼의 이름은 book_cnt 라고 변경하기 + author_lname 과 book_cnt 컬럼만 가져오기

 

 

 

 

 

컬럼 released_year 를 그룹화 하여, released_year 컬럼 각각의 데이터 개수 가져오기

 

 

 

having

- group by 로 묶은 컬럼값들의 평균을 구한 후, 그 결과로 파생된 avg_stock 컬럼은 where 절에 사용할 수 없다. 
- 그래서 이때 사용하는 것이 having

- 즉, 그룹화된 데이터에 수식이 필요한 경우에 사용

 

 

 

① where 조건문으로 데이터 제한하고, 

group by 컬럼 으로 묶은 데이터에 having 수식 넣어주기