집계함수

 

집계함수는 여러 행또는 전체 행으로 부터 하나의 결과 값을 반환하는 함수입니다.

 

집계함수는 SELECT문 또는 HAVING에서 사용 됩니다.

 

SELECT문은 최종 결과로 나올 컬럼값을 나열하거나 집계함수를 사용하고, HAVING문은 GROUP BY로 그룹화 할 대상의 컬럼을 준 뒤 그룹화된 후의 조건을 지정할 수 있다는 특징을 가지고 있습니다. 

 

HAVING문과 WHERE문의 쓰임새는 비슷하지만 HAVING문은 그룹화 된 결과에 대한 조건을 지정하며 집계함수를 사용할 수 있습니다.

 

SELECT 컬럼, 집계함수

FROM 테이블명

[WHERE 조건]

GROUP BY 컬럼

[HAVING 조건, 집계함수]

 

사용할 수 있는 집계함수의 종류와 사용 방법은 다음과 같다.

 

집계함수에서 예제로 사용할 학생 테이블은 다음과 같다.

이름 국어 영어
김에이 100 80
박비 50 100
이씨 70 80
한디 90 60

 

- COUNT : 여러 행이 있는 줄 수

SELECT COUNT(*)

FROM 학생;

→ 학생테이블에 있는 모든 학생의 숫자를 구하는 SQL쿼리문이다.

COUNT(*)
4

SELECT COUNT(이름)

FROM 학생

WHERE 국어 >= 90;

→ 학생테이블에 있는 국어 점수가 90점 이상인 학생의 숫자를 구하는 쿼리문이다.

COUNT(이름)
2

 

- SUM : 여러 행이 있는 선택된 컬럼 간의 합계

SELECT SUM(국어), SUM(영어)

FROM 학생;

→ 학생테이블의 국어 점수를 모두 더한 값과 영어 점수를 모두 더한값을 각각 구한다.

SUM(국어) SUM(영어)
310 320

 

- AVG : 여러 행이 있는 선택된 컬럼 간의 평균

SELECT AVG(국어), AVG(영어)

FROM 학생;

→ 학생테이블의 국어 점수의 평균과 영어 점수의 평균을 각각 구한다.

AVG(국어) AVG(영어)
77.5 80

 

- MAX : 여러 행이 있는 선택된 컬럼 중 최대값 

SELECT MAX(국어), MAX(영어)

FROM 학생;

→ 학생테이블의 국어 점수와 영어 점수의 최대값을 각각 알려준다.

MAX(국어) MAX(영어)
100 100

 

- MIN : 여러 행이 있는 선택된 컬럼 중 최솟값

SELECT MIN(국어), MIN(영어)

FROM 학생;

→ 학생테이블의 국어 점수와 영어 점수의 최솟값을 각각 알려준다.

MIN(국어) MIN(영어)
50 60

 

- STDDEV : 여러 행의 선택된 컬럼 간의 표준편차

 

- VARIAN : 여러 행의 선택된 컬럼 간의 분산

 

표준편차와 분산의 경우는 자주 쓰이지 않으므로 생략합니다. 사용방법은 다른 집계함수들과 같습니다.

+ Recent posts