GROUP BY
컬럼에서 동일한 값을 가지는 로우를 그룹화 하는 키워드
SELECT type
FROM pokemon.mypokemon
GROUP BY type;
HAVING
가져올 데이터 그룹에 조건을 지정해주는 키워드
HAVING 조건식 -> 참이 되는 그룹만 선택
HAVING절의 조건식에서는 그룹 함수를 쓴다.
COUNT
그룹의 값 수를 세는 함수
COUNT(1)은 하나의 값을 1로 세어주는 표현
SUM
그룹의 합을 계산한다
AVG
그룹의 평균을 계산하는 함수
MIN
그룹의 최솟값
MAX
그룹의 최대값
SELECT type, COUNT(*), COUNT(1), AVG(height), MAX(weight)
FROM pokemon.mypokemon
GROUP BY type;
COUNT(*)은 ROW의 개수를 세는것
COUNT는 하나의 ROW를 1개로 하여 세는 것
SELECT type, COUNT(*), COUNT(1), AVG(height), MAX(weight)
FROM pokemon.mypokemon
GROUP BY type
HAVING COUNT(1) = 2;
CNT 값이 2인 type만 반환
쿼리 실행 순서
SELECT는 필수
작성순서와 실행 순서는 다르다.
최종예제
SELECT type, AVG(weight)
FROM mypokemon
WHERE LENGTH(name) > 5
GROUP BY type
HAVING AVG(weight) >= 20
ORDER BY 2 DESC;
SELECT type, MIN(height), MAX(height)
FROM mypokemon
WHERE number < 200
GROUP BY type
HAVING MAX(weight) >= 10 AND MIN(weight) >= 2
ORDER BY 2 DESC, 3 DESC;
'DB' 카테고리의 다른 글
MySQL기초(7) (0) | 2022.05.04 |
---|---|
MySQL기초(6) (0) | 2022.05.04 |
MySQL 기초 (4) (0) | 2022.05.02 |
MySQL 기초(3) (0) | 2022.05.02 |
MySQL 기초 (2) (0) | 2022.04.29 |