본문 바로가기
Skillset/SQL

SQL 자주 사용하는 집계함수 예제로 알아보기

by Everly. 2022. 5. 31.

이번 포스팅은 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에서 그룹화를 할 때 유용한 그룹함수에 대해 알아보자.

    반응형

    댓글