HOME
home
About
home

GROUP BY - 2부

이전 장에서는 데이터를 집계하고 분석하기 위한 GROUP BY의 기본사항을 살펴보았습니다. 이번 장에서는 이 필수적인 SQL 기술을 더 깊이 이해하도록 할 것입니다.
HAVING으로 그룹화 개선하기
이전 장에서 SUM과 COUNT 같은 집계 함수를 사용했던 것을 기억하시나요? 이제 그룹화된 데이터의 결과를 집계 함수에 적용된 조건에 따라 필터링할 수 있는 HAVING 절을 소개합니다. 즉, 집계된 값이 결과 집합에서 고려될 때의 기준을 정의할 수 있습니다.
구문과 사용법
HAVING 절의 구문은 다음과 같습니다:
SELECT column1, aggregate_function(column2) FROM table GROUP BY column1 HAVING aggregate_function(column2) condition;
HAVING은 "그룹화 후 필터링"으로 생각할 수 있습니다. 예를 들어, 특정 수준 이상의 수익을 생성한 카테고리를 찾고 싶다면, HAVING을 사용하여 해당 수익 기준을 충족하는 카테고리만 필터링할 수 있습니다.
실제 시나리오: 수익 기준
다시 판매 테이블을 고려해봅시다. 총 수익이 $10,000을 초과하는 카테고리를 찾고 싶다고 가정해보세요. 이를 달성하기 위해 HAVING 절을 사용할 수 있습니다:
SELECT category, SUM(revenue) AS total_revenue FROM sales GROUP BY category HAVING SUM(revenue) > 10000;
이 쿼리는 먼저 카테고리별로 데이터를 그룹화하고 각 카테고리의 총 수익을 계산한 다음, 총 수익이 $10,000을 초과하는 카테고리만 필터링합니다.
챌린지: 고성능 제품
여러분의 기술을 시험할 챌린지입니다: 100회 이상 판매되고 총 수익이 최소 $500인 제품을 찾고자 합니다. 이를 위해 HAVING 절과 여러 집계 함수를 사용해야 합니다.
SELECT product_id, SUM(quantity_sold) AS total_quantity_sold, SUM(revenue) AS total_revenue FROM sales GROUP BY product_id HAVING SUM(quantity_sold) > 100 AND SUM(revenue) >= 500;
이 예에서는 product_id별로 그룹화한 다음 HAVING 절을 사용하여 두 조건을 모두 충족하는 제품을 필터링합니다: 100회 이상 판매되고 적어도 $500의 수익을 생성한 제품.
HAVING 절 도입으로 그룹화된 데이터를 세밀하게 조정하고 특정 기준을 충족하는 구체적인 통찰력을 추출할 수 있는 도구를 갖추게 되었습니다. GROUP BY와 HAVING의 결합은 분석과 의사결정에 새로운 길을 열어주어 단순한 집계를 넘어서는 복잡한 질문에 답할 수 있게 해줍니다.
GROUP BY와 그 다양한 응용에 익숙해지면서, 여러분은 SQL 전문가가 되는 길을 걷고 있습니다. 다가오는 장에서는 SQL의 더 고급 기술과 명령어를 탐구하여 복잡한 데이터 시나리오를 쉽게 다룰 수 있게 해