sanguk.dev
작성완료
MySQL 그룹 함수

MySQL 그룹 함수

MySQL 그룹 함수에는 레코드 개수 조회를 위한 COUNT(), 최소값과 최대값을 반환하는 MIN()과 MAX(), 숫자 필드의 합계를 구하는 SUM(), 평균을 계산하는 AVG()가 포함된다. GROUP BY 절은 레코드를 그룹화하여 결과 집합의 크기를 줄이며, HAVING 절은 그룹화된 결과에 조건을 설정할 수 있게 해준다.

MySQL

레코드 개수 조회

  • COUNT() 함수는 선택된 필드에서 특정 조건을 만족하는 레코드의 총 개수를 반환한다.
  • 조건을 만족하는 레코드가 없다면 0을 반환한다.
  • 중복된 값을 제외 하려면 필드 이름 앞에 DISTINCT 키워드를 사용하면 된다.
sql
SELECT COUNT(*) AS CNT FROM tb_user;
CNT
63

최소값과 최대값

  • MIN() 함수는 선택된 필드에 저장된 값 중 가장 작은 값을 반환
  • MAX() 함수는 선택된 필드에 저장된 값 중 가장 큰 값을 반환
sql
SELECT MIN(AGE) AS MIN_AGE FROM tb_user;
MIN_AGE
16
sql
SELECT MAX(AGE) AS MAX_AGE FROM tb_user;
MAX_AGE
32

합계

  • SUM() 함수는 선택된 숫자 타입의 필드에 저장된 값의 총 합을 반환한다.
sql
SELECT SUM(AGE) AS SUM_AGE FROM tb_user;
SUM_AGE
149

평균

  • AVG() 함수는 선택된 숫자 타입의 필드에 저장된 값의 총 합을 반환한다.
sql
SELECT AVG(AGE) AS AVG_AGE FROM tb_user;
AVG_AGE
24

GROUP BY** 절**

  • GROUP BY 절은 선택된 레코드의 집합을 필드의 값이나 표현식에 의해 그룹화한 결과 집합을 반환한다.
  • GROUP BY 절은 하나의 그룹을 하나의 레코드로 반환 하므로, 결과 집합의 크기를 줄여주는 역할을 한다.
  • GROUP BY 절에 사용된 필드의 이름은 반드시 SELECT 문에도 같이 명시되어야 한다.
sql
SELECT 필드이름, 그룹함수(필드이름)
FROM 테이블이름
[WHERE 조건]
GROUP BY 필드이름;

HAVING** 절**

  • HAVING 절은 SELECT 문의 WHERE 절처럼 GROUP BY 절에 의해 반환되는 결과 집합의 조건을 설정할 수 있게 해준다.
sql
SELECT 필드이름, 그룹함수(필드이름)
FROM 테이블이름
[WHERE 조건]
GROUP BY 필드이름
HAVING 조건;