본문 바로가기

데이터베이스(DB)

[MYSQL] 그룹별 데이터 조회 (GROUP BY)

728x90

유형별로 갯수를 알고 싶을 때는 컬럼에 데이터를 그룹화 할 수 있는 GROUP BY를 사용한다

 

GROUP BY를 사용할 때는 두가지 키워드를 기억해야 한다

특정 컬럼을 그룹화 하는 GROUP BY 

특정 컬럼을 그룹화한 결과에 조건을 거는 HAVING

 

* WHERE는 그룹화 하기 전에 조건을 거는 것이고, HAVING은 그룹화 후에 조건을 거는것

 

 

hero_collection 테이블

 

 

SELECT type, COUNT(name) AS cnt FROM hero_collection GROUP BY type;

 

-> type과 type을 기준으로 그룹화한  name의 개수를  출력하라

-> type의 데이터 값이 같은 것들은 같은 그룹으로 처리한다

 

 

 

출력 결과

 

 

 

 

 

 

SELECT type, COUNT(name) AS cnt FROM hero_collection WHERE type > 1 GROUP BY type;

 

-> 그룹화 하기전에 type이 1보다 큰 것들만 그룹화하여 출력

 

출력 결과

 

 

 

 

 

 

SELECT type, COUNT(name) AS cnt FROM hero_collection GROUP BY type HAVING cnt >= 2;

 

-> 그룹화 한 후에 cnt가 2보다 크거나 같은 것들만 출력

 

 

출력 결과

 

 

 

 

 

SELECT type, COUNT(name) AS cnt FROM hero_collection WHERE type > 1 GROUP BY type HAVING cnt >= 2;

 

-> 그룹화 하기전에 type이 1보다 큰 것들만 그룹화 한 후,

-> 그룹화 후에 cnt가 2보다 크거나 같은 것들만 출력

 

 

출력 결과