DB

MySQL 기초(5)

with_AI 2022. 5. 4. 01:16

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