본문 바로가기

데이터베이스

[ MySQL ] Group by 사용법

Group by : 특정 컬럼을 그룹화해준다.

 

사용법

1) 컬럼 그룹화

 

select [ 컬럼명 ]
from [ 테이블명 ] 
group by  [ 그룹화할 컬럼 ];

 

2) 조건 처리 후에 컬럼 그룹화

 

select [ 컬럼명 ]
from [ 테이블명 ] 
where [ 조건식 ]
group by  [ 그룹화할 컬럼 ];

 

3) 컬럼 그룹화 후, 그룹화한 컬럼으로 정렬

 

select [ 컬럼명 ]
from [ 테이블명 ] 
group by  [ 그룹화할 컬럼 ]
order by [ 정렬할 컬럼 ];

 

group by 예제

예제 1) full_name 별로, 각각 몇권의 책을 썼는지, full_name 과 책의 갯수를 cnt 라는 컬럼으로 가져오세요.

 

select concat(author_fname, ' ', author_lname) as full_name, count(*) as cnt
from books
group by full_name;

 

 

예제 2) 각 작가별로 자신이 쓴 책의 최소 년도는?

* group by 는 컬럼 1개, 2개, 3개... 상관없이 여러개 가능

 

select author_fname, author_lname, min(released_year)
from books
group by author_fname, author_lname;

 

 

예제 3) author_lname으로 그룹화하고 카운트한 값을 정렬하시오

 

select title, author_lname, concat(count(*), ' books' ) as COUNT
from books
group by author_lname
order by author_lname;