테이블의 유형별로 개수를 가져오고자 한다. COUNT
를 사용할 수 있지만 이 경우에는 전체 개수만을 가져오게 된다. 이렇게 유형별로 조회하고자 할 때 사용하는 것이 GROUP BY
이다.
GROUP BY
HAVING
* WHERE
은 그룹화 하기 전의 조건이고, HAVING
은 그룹화한 후의 조건이다.
SELECT 필드 FROM 테이블 GROUP BY 그룹화할컬럼;
SELECT 필드 FROM 테이블 WHERE 조건식 GROUP BY 그룹화할컬럼;
SELECT 필드 FROM 테이블 GROUP BY 그룹화할컬럼 HAVING 조건식;
SELECT 필드 FROM 테이블 WHERE 조건식 GROUP BY 그룹화할컬럼 HAVING 조건식;
SELECT 필드 FROM 테이블 WHERE 조건식
GROUP BY 그룹화할컬럼 HAVING 조건식 ORDER BY 필드1, 필드2, 필드3, ...;
SELECT COUNTY, COUNT(NAME) AS CNT FROM FOOD GROUP BY COUNTRY;
SELECT COUNTY, COUNT(NAME) AS CNT FROM FOOD
WHERE COUNTRY LIKE "KOREAN"
GROUP BY COUNTRY;
SELECT COUNTY, COUNT(NAME) AS CNT FROM FOOD GROUP BY COUNTRY HAVING CNT > 2;
SELECT COUNTRY, COUNT(NAME) AS CNT FROM FOOD
WHERE COUNTRY LIKE "%ESE"
GROUP BY COUNTRY
HAVING CNT > 2;
SELECT COUNTRY, COUNT(NAME) AS CNT FROM FOOD
WHERE COUNTRY LIKE "%ESE"
GROUP BY COUNTRY
HAVING CNT > 2
ORDER BY COUNT DESC;