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보다 크거나 같은 것들만 출력

'데이터베이스(DB)' 카테고리의 다른 글
[MYSQL] LIMIT의 활용 - 원하는 만큼만 데이터를 가져오기 (0) | 2022.03.19 |
---|---|
[MYSQL] null값 vs 공백("") (0) | 2022.03.19 |
[MYSQL] 데이터의 최대, 최소 값 가져오기 (MAX, MIN) (0) | 2022.03.09 |
[MYSQL] 조회 정렬 (ORDER BY) (0) | 2022.03.09 |
[MYSQL] 연산자(Operator) (0) | 2022.03.09 |