상세 컨텐츠

본문 제목

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

정보처리기사 공부지식

by 소란한소란 2024. 5. 16. 20:21

본문

728x90

SQL 그룹 함수와 윈도우 함수: 이해와 활용

데이터베이스에서 데이터를 그룹화하여 분석하는 것은 매우 중요합니다. 이를 위해 SQL은 다양한 그룹 함수와 윈도우 함수를 제공합니다. 이번 포스팅에서는 그룹 함수와 집계 함수의 개념, 그리고 이를 사용하는 방법에 대해 알아보겠습니다.


그룹함수

  • 개념
    • 테이블의 전체 행을 지정한 컬럼 값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수
종류 설명
ROLLUP - 그룹별 중간 집계값을 생성한다.
CUBE - 결합 가능한 값에 대한 다차원 집계를 생성한다.
GROUPING SETS - 개별 집계를 구한다.

 

집계함수

  • 개념
    • 여러 행 또는 전체 행으로부터 하나의 결과값을 반환하는 함수
종류 설명
COUNT - 행의 개수를 반환
SUM - 특정 컬럼의 합계를 반환
AVG - 특정 컬럼의 평균을 반환
MAX - 특정 컬럼에서 최댓값을 반환
MIN - 특정 컬럼에서 최솟값을 반환

 

그룹함수 사용 예시

  • 예제 데이터를 포함한 테이블
-- sales 테이블 생성
CREATE TABLE sales (
    id INT,
    product VARCHAR(50),
    category VARCHAR(50),
    amount INT
);

-- 예제 데이터 삽입
INSERT INTO sales (id, product, category, amount) VALUES
(1, 'Product1', 'Category1', 100),
(2, 'Product2', 'Category1', 150),
(3, 'Product3', 'Category2', 200),
(4, 'Product4', 'Category2', 250),
(5, 'Product5', 'Category3', 300);
  • GROUP BY
    • 특정 컬럼 값에 따라 그룹화하여 집계할 때 사용
SELECT category, SUM(amount) as total_amount
FROM sales
GROUP BY category;
  • 결과 테이블
category total_amount
Category1 250
Category2 450
Category3 300
  • ROLLUP
    • 다차원 집계를 생성하여 데이터의 총계를 포함한 다양한 집계 결과를 제공
SELECT category, product, SUM(amount) as total_amount
FROM sales
GROUP BY ROLLUP (category, product);
  • 결과 테이블
category product total_amount
Category1 Product1 100
Category1 Product2 150
Category1 NULL 250
Category2 Product3 200
Category2 Product4 250
Category2 NULL 450
Category3 Product5 300
Category3 NULL 300
NULL NULL 1000
  • CUBE
    • 결합 가능한 값에 대한 다차원 집계를 생성
SELECT category, product, SUM(amount) as total_amount
FROM sales
GROUP BY CUBE (category, product);
  • 결과 테이블
category product total_amount
Category1 Product1 100
Category1 Product2 150
Category1 NULL 250
Category2 Product3 200
Category2 Product4 250
Category2 NULL 450
Category3 Product5 300
Category3 NULL 300
NULL Product1 100
NULL Product2 150
NULL Product3 200
NULL Product4 250
NULL Product5 300
NULL NULL 1000
  • GROUPING SETS
    • GROUPING SETS 함수는 괄호로 묶은 집합별로도 집계를 구할 수 있다.
SELECT category, product, SUM(amount) as total_amount
FROM sales
GROUP BY GROUPING SETS (
  (category),
  (product),
  (category, product),
  ()
);
  • 결과 테이블
category product total_amount
Category1 NULL 250
Category2 NULL 450
Category3 NULL 300
NULL Product1 100
NULL Product2 150
NULL Product3 200
NULL Product4 250
NULL Product5 300
Category1 Product1 100
Category1 Product2 150
Category2 Product3 200
Category2 Product4 250
Category3 Product5 300
NULL NULL 1000

 


이번 포스팅에서는 그룹 함수와 집계 함수의 개념 및 사용 방법을 알아보았습니다. 다음 포스팅에서는 윈도우 함수에 대해 알아보겠습니다. SQL을 통해 데이터를 더욱 효과적으로 분석하고자 한다면, 그룹 함수와 집계 함수를 잘 이해하고 활용하는 것이 중요합니다. 2024년에 정보처리기사를 따기 위해 노력하는 모두에게 행운을 빕니다!

 

 

728x90

관련글 더보기