데이터베이스
MySQL : 그룹핑(GROUP BY)
P_eli
2023. 11. 22. 23:06
728x90
반응형
기본적인 GROUP BY 문의 구조
GROUP BY 문은 다음과 같은 기본적인 구조를 갖습니다.
SELECT 열1, 집계함수(열2)
FROM 테이블명
GROUP BY 열1;
- 열1: 그룹화의 기준이 되는 열입니다.
- 집계함수(열2): 그룹화된 데이터에 대한 집계 함수를 사용할 수 있습니다. 일반적으로는 COUNT, SUM, AVG 등이 사용됩니다.
- 테이블명: 데이터를 추출할 테이블의 이름입니다.
GROUP BY 문 예제
가령, 'orders' 테이블이 있다고 가정해봅시다.
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
order_date DATE,
total_amount DECIMAL(10, 2)
);
INSERT INTO orders (order_id, customer_id, order_date, total_amount) VALUES
(1, 101, '2023-01-01', 50.00),
(2, 102, '2023-01-02', 75.00),
(3, 101, '2023-01-03', 30.00),
(4, 103, '2023-01-04', 100.00),
(5, 102, '2023-01-05', 45.00);
이제, 각 고객별 총 주문 금액을 구하려면 다음과 같이 할 수 있습니다.
SELECT customer_id, SUM(total_amount) as total_spent
FROM orders
GROUP BY customer_id;
HAVING 절을 통한 그룹 조건 필터링
HAVING 절은 그룹화된 데이터에 조건을 적용할 때 사용됩니다. 예를 들어, 총 주문 금액이 50 이상인 고객만을 출력하고 싶다면 다음과 같이 작성할 수 있습니다.
SELECT customer_id, SUM(total_amount) as total_spent
FROM orders
GROUP BY customer_id
HAVING total_spent >= 50;
GROUP BY의 다양한 활용
GROUP BY는 데이터를 그룹화하여 집계하는 데에만 사용되는 것이 아닙니다. 날짜, 문자열 등 여러 유형의 열에 적용할 수 있습니다. 이를 통해 데이터를 보다 효과적으로 분석할 수 있습니다.
MySQL의 GROUP BY 문은 데이터를 그룹화하여 효과적으로 분석하는 데에 필수적인 기능입니다. 데이터베이스에서 정보를 요약하고 집계하는 데에 자주 활용되므로, 다양한 상황에서 유용하게 사용할 수 있습니다.
728x90
반응형