이번 포스팅은 SQL에서 그룹화를 할 때 많이 사용하는 함수 중, 집계함수에 대해 포스팅합니다.
집계함수는 흔히 사용하는 COUNT, SUM, AVG 요런 함수들로 데이터를 통계 처리할 때 사용합니다.
실제로 실무할 때 정말 많이 사용하므로 꼭 알아두어야 할 함수입니다 :)
✔Table of Contents
대표적인 집계함수에는 다음이 있다.
- COUNT: 개수 (NULL 값 포함)
- SUM: 합계
- AVG: 평균값
- MAX: 최댓값
- MIN: 최솟값
- STDEV: 표준편차
- VAR: 분산
집계함수는 2가지 쓰임새가 있는데, 그룹화(GROUP BY)를 하지 않고 쓰거나 or 그룹화와 함께 쓰는 경우이다.
이 2가지 케이스는 다음과 같은 경우에 쓰게 된다.
GROUP BY와 사용 X | 전체 데이터에 대한 통계량 산출 (describe) |
GROUP BY와 사용 O | 그룹화한 항목별 통계량 산출 |
바로 예제로 적용해보자. 여기선 [ORDER] 테이블의 데이터를 사용할 것이다.
USE EDU
SELECT * FROM [ORDER]
1. 전체 데이터에 대한 통계량(GROUP BY 사용 X)
-- USING ALL DATA = describe data
SELECT COUNT(order_no) AS 총주문수,
SUM(sales_amt) AS 총주문금액,
AVG(sales_amt) AS 평균주문금액,
MAX(order_date) AS 최근구매일자,
MIN(order_date) AS 최초구매일자,
STDEV(sales_amt) AS 주문금액_표편,
VAR(sales_amt) AS 주문금액_분산
FROM [ORDER]
위의 경우처럼 GROUP BY를 함께 사용하지 않을 경우엔 전체 데이터에 대한 통계량이 뽑히게 된다.
2. 그룹화 항목별 통계량(GROUP BY 사용 O)
-- USING WITH GROUP BY
-- describe data per mem_no
SELECT mem_no,
COUNT(order_no) AS 총주문수,
SUM(sales_amt) AS 총주문금액,
AVG(sales_amt) AS 평균주문금액,
MAX(order_date) AS 최근구매일자,
MIN(order_date) AS 최초구매일자,
STDEV(sales_amt) AS 주문금액_표편,
VAR(sales_amt) AS 주문금액_분산
FROM [ORDER]
GROUP BY mem_no
이번엔 회원아이디(mem_no)별 집계함수를 사용하였다.
결과를 보면 회원아이디별로 통계량 값이 쫙 뽑혀 나오게 된다. 이를테면 회원번호가 1000256인 첫번째 행을 보자.
이 회원은 총 주문을 3번, 총 주문금액은 41만 7천원이며 평균 주문금액은 13만 9천원 등등..의 정보를 알 수 있다.
다음 포스팅에서는 집계함수에 이어 SQL에서 그룹화를 할 때 유용한 그룹함수에 대해 알아보자.
반응형
'Skillset > SQL' 카테고리의 다른 글
SQL 윈도우 함수 예제 - 순위함수(RANK), 누적 집계함수 (0) | 2022.06.02 |
---|---|
SQL 그룹함수 예제 - WITH ROLLUP, WITH CUBE, GROUPING SETS, GROUPING (0) | 2022.05.31 |
자주 쓰이는 SQL 연산자 & 함수 정리 (0) | 2022.05.29 |
SQL 서브쿼리(Sub Query) 예제 - select절, from절, where절 (4) | 2022.05.28 |
SQL JOIN 예제 - INNER, LEFT, RIGHT, FULL, CROSS, SELF JOIN (0) | 2022.05.27 |