정보처리기사

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

PEAZH 2024. 7. 15. 15:14

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