SQL에서 집계함수는 여러 행의 값을 하나의 결과값으로 요약하는 함수입니다.
주로 GROUP BY 라는 그룹화함수와 함께 사용되며 데이터의 합계, 평균 등을 계산하는데 활용됩니다.
사용예제는 DATA1이라는 테이블로 A홈쇼핑의 사용자로 ID, 이름, 이메일 주소, 전화번호로 구성된 4개의 데이터입니다.
조건에 맞는 데이터 개수를 세는데 사용하는 함수입니다.
특정 컬럼만 지정하게 되면 해당 컬럼 중 NULL 값은 제외 후 개수를 반환합니다.
SELECT
count(*),
count(FIELD4) FROM DATA1;
COUNT와 DISTINCT를 사용하여 중복된 데이터를 제외하고 집계합니다.
SELECT
count(*),
count(DISTINCT field1)
FROM DATA1;
숫자 데이터를 더할 때는 SUM 함수를 사용합니다. 모든 행의 값을 합산하는 함수입니다.
SELECT
SUM(FIELD4)
FROM DATA1;
SUM함수와 GROUP BY 함수를 사용해 각 그룹의 데이터 개수를 확인할 수 있습니다.
SELECT
SUM(FIELD4)
FROM DATA1
GROUP BY id;
AVG함수는 평균을 구할 때 사용합니다.
특징은 NULL 값을 무시하는 것이고 DISTINCT 문과 함께쓰면 중복값을 무시하고 고유한 값에 대해서만 AVG 함수를 적용할 수 있습니다.
# 기본 AVG 사용예제
SELECT
AVG(FIELD4)
FROM DATA1;
# DISTINCT를 활용한 AVG
FIELD4에서 34라는 값이 중복된다. 해당 값이 중복되기 때문에 중복값을 무시하고 평균을 구한다.
SELECT
AVG(DISTINCT FIELD4)
FROM DATA1;
부분합과 총합은 GROUP BY 함수와 ROLLUP 함수를 조합해서 만듭니다.
ROLLUP 함수는 GROUPBY ROLLUP(...) 에 입력한 열을 기준으로 오른쪽에서 왼쪽으로 열을 이동하며 부분합과 총합을 집계합니다.
SELECT CUSTOMER_ID, STAFF_ID, AMOUNT
FROM DATA2
GROUP BY CUSTOMER_ID, STAFF_ID WITH ROLLUP;
Nearly 200 sessions are now available on demand in the Innovate Hub.
Watch Now →