SQL 쿼리에서 Grouping 이해
James Reed
Infrastructure Engineer · Leapcell

Key Takeaways
- SQL의 GROUP BY는 집계를 위해 행을 그룹으로 구성합니다.
- 집계 함수(예: SUM, COUNT)는 각 그룹에서 작동합니다.
- HAVING은 집계 후 그룹을 필터링합니다.
데이터베이스를 사용할 때 데이터를 요약하고, 패턴을 식별하거나, 데이터의 특정 하위 집합에 대한 계산을 수행해야 하는 경우가 많습니다. SQL은 이러한 작업을 가능하게 하는 GROUP BY
절을 제공합니다. 이 문서에서는 SQL 쿼리에서 그룹화가 무엇을 의미하는지, 왜 중요한지, 그리고 어떻게 효과적으로 사용할 수 있는지 살펴보겠습니다.
SQL에서 그룹화란 무엇인가요?
SQL에서 그룹화는 지정된 열에서 동일한 값을 가진 데이터 행을 요약 행으로 구성하는 프로세스를 의미합니다. 일반적으로 GROUP BY
절은 각 그룹에 대한 계산을 수행하기 위해 COUNT()
, SUM()
, AVG()
, MIN()
, MAX()
와 같은 집계 함수와 함께 사용됩니다.
왜 그룹화를 사용해야 할까요?
그룹화는 다음과 같은 경우에 필수적입니다.
- 대규모 데이터 세트 요약 (예: 지역별 총 판매량).
- 데이터 내의 하위 그룹에 대한 계산 수행.
- 다른 범주에서 추세 또는 패턴 식별.
그룹화가 없으면 집계 함수가 각 하위 그룹이 아닌 전체 결과 집합에 적용됩니다.
기본 구문
다음은 SQL에서 데이터를 그룹화하기 위한 기본 구문입니다.
SELECT column1, aggregate_function(column2) FROM table_name GROUP BY column1;
column1
: 데이터를 그룹화하려는 열입니다.aggregate_function
: 적용하려는 함수입니다 (예:SUM
,COUNT
).
예제: 지역별 판매량 그룹화
Region
, Salesperson
, Amount
열이 있는 Sales
라는 테이블이 있다고 가정합니다. 각 지역별 총 판매액을 얻으려면 다음과 같이 작성합니다.
SELECT Region, SUM(Amount) AS TotalSales FROM Sales GROUP BY Region;
이 쿼리는 각 지역별 총 판매액을 보여주는 지역별 행을 반환합니다.
여러 그룹화 열 사용
둘 이상의 열로 그룹화할 수 있습니다. 예를 들어 각 지역 내에서 각 영업 사원의 총 판매량을 보려면 다음과 같이 합니다.
SELECT Region, Salesperson, SUM(Amount) AS TotalSales FROM Sales GROUP BY Region, Salesperson;
HAVING으로 그룹화된 결과 필터링
WHERE
절은 그룹화 전에 행을 필터링하는 반면 HAVING
절은 집계 후에 그룹을 필터링합니다. 예를 들어 총 판매액이 $10,000를 초과하는 지역을 찾으려면 다음과 같이 합니다.
SELECT Region, SUM(Amount) AS TotalSales FROM Sales GROUP BY Region HAVING SUM(Amount) > 10000;
기억해야 할 주요 사항
SELECT
목록의 모든 비집계 열은GROUP BY
절에 포함되어야 합니다.- 집계 함수는 전체 테이블이 아닌 각 그룹에서 작동합니다.
- 집계된 값에 대한 조건에는
HAVING
을 사용하세요.
결론
그룹화는 데이터를 효율적으로 분석하고 요약할 수 있는 SQL의 강력한 기능입니다. GROUP BY
절과 집계 함수를 마스터하면 데이터베이스에서 더 깊은 통찰력을 얻고 복잡한 분석을 쉽게 수행할 수 있습니다.
FAQs
SQL에서 그룹화는 유사한 값을 가진 행을 요약 그룹으로 구성하는 것을 의미합니다.
GROUP BY를 사용하면 그룹화된 데이터에 집계 함수를 적용할 수 있습니다.
HAVING은 그룹화 후에 필터링하는 반면 WHERE는 그룹화 전에 필터링합니다.
Leapcell은 백엔드 프로젝트 호스팅을 위한 최고의 선택입니다.
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
다국어 지원
- Node.js, Python, Go 또는 Rust로 개발하세요.
무료로 무제한 프로젝트 배포
- 사용량에 대해서만 비용을 지불합니다. 요청이나 요금이 없습니다.
탁월한 비용 효율성
- 사용한 만큼 지불하고 유휴 요금이 없습니다.
- 예: $25는 평균 응답 시간 60ms에서 694만 건의 요청을 지원합니다.
간소화된 개발자 경험
- 간편한 설정을 위한 직관적인 UI.
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합.
- 실행 가능한 통찰력을 위한 실시간 메트릭 및 로깅.
손쉬운 확장성 및 고성능
- 고성능 동시성을 쉽게 처리할 수 있도록 자동 확장됩니다.
- 운영 오버헤드가 없으므로 구축에만 집중하세요.
문서에서 자세히 알아보세요!
X에서 팔로우하세요: @LeapcellHQ