본문 바로가기
MySQL

[MySQL]🐬GROUP BY 그룹화하여 데이터 조회

by ro117youshin 2022. 8. 22.
728x90

GROUP BY

MySQL에서 유형별로 개수를 가져오고 싶은데, COUNT함수로 데이터를 조회하면 전체 개수만을 가지고 온다.

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

 

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

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

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

 

※ WHERE과 HAVING을 헷갈리는 경우가 많은데 WHERE그룹화하기 전이고, HAVING그룹화 후의 조건이다.


사용법

컬럼 그룹화

SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼;

 

조건 처리 후에 컬럼 그룹화

SELECT 컬럼 FROM 테이블 WHERE 조건식 GROUP BY 그룹화할 컬럼;

 

컬럼 그룹화 후 조건 처리

SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼 HAVING 조건식;

 

조건 처리 후, 컬럼 그룹화 후 조건 처리

SELECT 컬럼 FROM 테이블 WHERE 조건식 GROUP BY 그룹화할 컬럼 HAVING 조건식;

 

ORDER BY가 있을 경우

SELECT 컬럼 FROM 테이블 [WHERE 조건식]
GROUP BY 그룹화할 컬럼 [HAVING 조건식] ORDER BY [컬럼1, 컬럼2, 컬럼3 ...];

Example Query

프로그래머스 - 고양이와 개는 몇 마리 있을까 [링크]

 

문제 설명 보기

 

쿼리문

SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) AS count FROM ANIMAL_INS 
WHERE ANIMAL_TYPE = "Cat" OR ANIMAL_TYPE = "Dog" 
GROUP BY ANIMAL_TYPE 
ORDER BY ANIMAL_TYPE;

 

 

댓글