[정보처리기사실기] 그룹 함수 / 윈도우 함수

    반응형

    2과목. 데이터베이스 구축

    📒 12. 그룹 함수 / 윈도우 함수


    1. 그룹 함수와 집계 함수

    (1) 그룹 함수

    • 테이블의 전체 행을 지정한 컬럼 값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수

      종류 설명
      ROLLUP • 그룹별 중간 집계값을 생성
      CUBE • 결합 가능한 값에 대한 다차원 집계 생성
      GROUPING SETS • 개별 집계 생성

    (2) 집계함수

    • 여러 행 또는 전체 행으로부터 하나의 결괏값을 반환하는 함수

      종류 설명
      COUNT • 행의 개수 반환
      SUM • 특정 컬럼의 합계 반환
      AVG • 특정 컬럼의 평균 반환
      MAX • 특정 컬럼의 최댓값 반환
      MIN • 특정 컬럼의 최솟값 반환
      STDDEV • 특정 컬럼의 표준편차 반환
      VARIAN • 특정 컬럼 간의  분산을 계산하여 반환

     

    2. 그룹 함수 사용

    (1) GROUP BY

    // 학번별로 총점과 평균 구하기
    SELECT
        학번,
        SUM(점수) AS 총점,
        AVG(점수) AS 평균
    FROM 성적표
    GROUP BY 학번;
    
    // 학번, 학기별로 총점과 평균 구하기
    SELECT
        학번, 
        학기,
        SUM(점수) AS 총점,
        AVG(점수) AS 평균
    FROM 성적표
    GROUP BY 학번, 학기;

    (2) ROLLUP

    // 학번, 학기별로 총점과 평균 구하기
    SELECT
        학번, 
        학기,
        SUM(점수) AS 총점,
        AVG(점수) AS 평균
    FROM 성적표
    GROUP BY ROLLUP(학번, 학기);
    • 학번이 같은 학생의 총점과 평균, 모든 학생의 총점과 평균이 추가됨

    (3) CUBE

    • ROLLUP에서는 단지 가능한 Subtotal만을 생성하였지만, CUBE는 결합 가능한 모든 값에 대하여 다차원 집계 생성
    • 그룹핑 컬럼이 가질 수 있는 모든 경우의 수에 대하여 소계와 총계를 생성
    // 학번, 학기별로 총점과 평균 구하기
    SELECT
        학번, 
        학기,
        SUM(점수) AS 총점,
        AVG(점수) AS 평균
    FROM 성적표
    GROUP BY CUBE(학번, 학기);

    (4) GROUPING SETS

    • ROLLUP과 CUBE와 달리 계층 구조가 나타나지 않음
    • 인자의 순서가 달라도 결과는 똑같음
    • 괄호로 묶은 집합별로도 집계를 구할 수 있음
    // 학번, 학기별로 총점과 평균 구하기
    SELECT
        학번, 
        학기,
        SUM(점수) AS 총점,
        AVG(점수) AS 평균
    FROM 성적표
    GROUP BY GROUPING SETS(학번, 학기);

     

     

    3. 윈도우 함수

    (1) 윈도우 함수의 개념

    • 그룹 함수들에 대해서 데이터 처리를 간단하게 하기 위한 함수
    • 중첩해서 사용할 수 없으며, 서브 쿼리에서 사용할 수 있음
    • 'OVER' 구문 필수 포함해야 함
    • OLAP 함수라고도 함
    • 데이터를 분석할 때 사용 (ex. 순위 분석)

    (2) 윈도우 함수의 분류

    • a) 순위 함수
      - 그룹 내의 순위를 계산하는 함수
      - RANK, DENSE_RANK, ROW_NUMBER
    • b) 집계 함수
      - 그룹 내의 값을 집계하는 함수
      - SUM, MAX, MIN, AVG, COUNT
    • c) 순서 함수
      - 그룹 내의 행의 순서를 구하는 함수
      - FIRST_VALUE, LAST_VALUE, LAG, LEAD

    (3) 윈도우 함수 문법

    SELECT
    	WINDOW_FUNCTION (ARGUMENTS)
        OVER (
        	[PARTITION BY 컬럼]
            [ORDER BY 절]
            [WINDOWING 절]
        )
    FROM 테이블명;

     

     

    참고자료

    흥달쌤,  '흥!나게 합격 달성! 2024 정보처리기사 실기 클래스'
     

    1억뷰 N잡

    [1회 연장 포함] 흥!나게 합격 달성! 2024 정보처리기사 실기 클래스

    www.njobler.net

    반응형

    댓글