컴퓨터/MySQL

MySQL (12) - 집계함수에 대하여 알아보자 (COUNT, SUM, AVG, MIN, MAX)

달서비 2023. 4. 5. 22:22

SQL을 사용하는 경우 테이블의 최솟값, 합계 등 정보가 필요한 경우가 있습니다. 그럴 때 집계함수라는 것을 활용합니다. 5가지의 집계함수에 대하여 알아보겠습니다.

 

집계함수

집계함수(Aggregate Function)란 DB에서 특정 칼럼의 값들을 모아서 계산하는 함수입니다. 이에 따른 특징으로 입력이 여러 개의 row를 가지고 출력이 하나의 결과를 만듭니다. 집계 함수를 이용하여 데이터의 요약 정보를 쉽게 구할 수 있습니다.

 

예제 테이블

class name price score
1 minji 5500 80
2 sanggyu 1000 2000
3 younga 2500 100

 

COUNT

SELECT COUNT(*) --2
FROM mytable
WHERE price > 2000;

COUNT 함수는 특정 칼럼의 ROW 개수를 세는 함수입니다. 특정 열에 대하여 COUNT 함수를 넣는 경우 해당 열이 NULL이 아닌 ROW의 개수를 반환합니다. 여담으로 COUNT(*)로 작성하는 경우 테이블에 존재하는 행의 개수가 반환됩니다. 위의 예제에는 price가 2000이 넘는 개수를 구하는 구문으로 2500, 5500총 2개로 2를 출력합니다.

 

SUM

SELECT SUM(price) -- 9000
FROM mytable;

SUM 함수는 특정 칼럼의 합을 구하는 함수입니다. SUM 함수는 숫자인 값에 대해서 연산이 가능하며, NULL 값은 넘어갑니다. 특정 열에 대하여 해당 예제는 price 칼럼의 합을 구하는 구문으로 5500+1000+2500 = 9000을 출력합니다. 

 

AVG

SELECT AVG(price) -- 3000
FROM mytable;

AVG 함수는 특정 칼럼의 평균을 구하는 함수입니다. SUM 함수와 마찬가지로 NULL 값은 넘어갑니다. 해당 예제는 price 칼럼의 평균을 구하는 구문으로 (5500+1000+2500)/3의 값인 3000을 출력합니다.

 

MIN / MAX

SELECT MIN(price), MAX(price) -- 1000 5500
		 MIN(name), MAX(name) -- minji younga
FROM mytable;

MIN, MAX함수는 각각 최솟값을 출력하는 함수입니다. 일반적으로 숫자에 사용하는데 문자열로 해당 함수를 사용하는 것도 가능합니다. 해당 예제는 price 값의 최소인 1000, 5500을 출력하면 또한 name의 유니코드 기준 최솟값 및 최대값인  minji와 younga를 출력합니다.