GROUP BY

특징

사용 예제

! 400

결과

SELECT type
FROM pokemon.mypokemon
GROUP BY type;

! 200

내부 구조

! 600

HAVING

특징

SELECT [컬럼 이름], ... , [그룹함수],
FROM [테이블 이름]
WHERE 조건식
GROUP BY [컬럼이름]
HAVING 조건식;

GROUP 함수

COUNT

COUNT?

  • 그룹의 값 수를 세는 함수
    • 집계할 컬럼 이름은 그룹의 기준이 되는 컬럼 이름과 같아도 되고, 같지 않아도 된다.
    • COUNT(1)은 하나의 값을 1로 세어주는 표현으로 COUNT 함수에 자주 사용됩니다.
  • GROUP BY가 없는 쿼리에서도 사용 가능, 이때는 전체 로우에 함수가 적용됩니다.

문법

SELECT [컬림 이름], ..., COUNT([컬럼이름])
FROM [테이블 이름]
GROUP BY [컬럼 이름]
HAVING 조건문;

AVG

AVG?

  • 그룹의 평균을 계산하는 함수
  • AVG([컬럼이름]) 형식으로 SELECT, HAVING 절에서 사용합니다.
  • 집계할 컬럼 이름은 그룹의 기준이 되는 컬럼 이름과 같아도 되고, 같지 않아도 됩니다.
  • GROUP BY가 없는 쿼리에서도 사용 가능하며, 이때는 전체 로우에 함수가 적용됩니다.

문법

SELECT [컬럼 이름], ... , AVG([그룹함수])
FROM [테이블 이름]
WHERE 조건식
GROUP BY [컬럼이름]
HAVING 조건식;

MIN

MIN?

  • 그룹의 최솟값을 반환하는 함수
  • MIN([컬럼이름])형식으로 SELECT, HAVING 절에서 사용합니다.
  • 집계할 컬럼 이름은 그룹의 기준이 되는 컬럼 이름과 같아도 되고, 같지 않아도 됩니다.
  • GROUP BY가 없는 쿼리에서도 사용 가능하며, 이때는 전체 로우에 함수가 적용 됩니다.

문법

SELECT [컬럼이름], ..., MIN([컬럼 이름])
FROM [테이블 이름]
GROUP BY [컬럼 이름]
HAVING 조건문

Group 함수 사용 예제

DB

! 600

쿼리1

SELECT type, COUNT(*), COUNT(1), AVG(height), MAX(weight)]
FROM pokemon.myhpokemon
GROUP BY type;

결과

! 400

쿼리2

SELECT type, COUNT(*), COUNT(1), AVG(height), MAX(weight)]
FROM pokemon.myhpokemon
GROUP BY type
HAVING COUNT(1)=2;

결과

! 400


#SQL