데이터베이스에서 데이터를 그룹화하여 분석하는 것은 매우 중요합니다. 이를 위해 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);
SELECT category, SUM(amount) as total_amount
FROM sales
GROUP BY category;
category | total_amount |
Category1 | 250 |
Category2 | 450 |
Category3 | 300 |
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 |
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 |
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년에 정보처리기사를 따기 위해 노력하는 모두에게 행운을 빕니다!
[정보처리기사 실기 공부] 병행 제어와 회복 (0) | 2024.05.20 |
---|---|
[정보처리기사 실기 공부] 절차형 SQL (0) | 2024.05.20 |
[정보처리기사 실기 공부] SELECT 쿼리 활용 (2) (0) | 2024.05.13 |
[정보처리기사 실기 공부] SELECT 쿼리 활용 (1) (0) | 2024.05.12 |
[정보처리기사 실기 공부] SQL 기본 문법과 종류 (2) (0) | 2024.05.01 |