데이터베이스(DB)
[MYSQL] 그룹별 데이터 조회 (GROUP BY)
제로펩시콜라
2022. 3. 9. 11:37
728x90
유형별로 갯수를 알고 싶을 때는 컬럼에 데이터를 그룹화 할 수 있는 GROUP BY를 사용한다
GROUP BY를 사용할 때는 두가지 키워드를 기억해야 한다
특정 컬럼을 그룹화 하는 GROUP BY
특정 컬럼을 그룹화한 결과에 조건을 거는 HAVING
* WHERE는 그룹화 하기 전에 조건을 거는 것이고, HAVING은 그룹화 후에 조건을 거는것
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보다 크거나 같은 것들만 출력