SQL 집계 함수 이해
Emily Parker
Product Engineer · Leapcell

Key Takeaways
- SQL 집계 함수는 간단한 명령을 사용하여 대규모 데이터 세트를 요약합니다.
GROUP BY
및HAVING
은 집계 분석을 향상시킵니다.- 집계 함수는 일반적으로 NULL 값을 무시합니다.
소개
SQL의 집계 함수는 값의 집합을 처리하고 단일 요약된 결과를 반환합니다. 이는 관계형 데이터베이스에서 데이터를 분석하고 요약하는 데 필수적인 도구입니다.
일반적인 집계 함수
1. COUNT()
-
정의: 행 수를 반환합니다.
-
변형:
COUNT(*)
: NULL을 포함한 모든 행.COUNT(column)
: NULL이 아닌 값만.COUNT(DISTINCT column)
: 고유한 NULL이 아닌 항목 수.
-
예제:
SELECT COUNT(*) AS TotalOrders FROM Orders;
2. SUM()
-
정의: 숫자 값의 합계를 계산합니다.
-
NULL 처리: 무시합니다.
-
예제:
SELECT SUM(amount) AS TotalRevenue FROM Sales;
3. AVG()
-
정의: 숫자 값의 평균을 계산합니다.
-
계산: NULL이 아닌 값의
SUM / COUNT
. -
예제:
SELECT AVG(salary) AS AvgSalary FROM Employees;
4. MIN()
및 MAX()
-
정의:
MIN()
: 열에서 가장 작은 값입니다.MAX()
: 열에서 가장 큰 값입니다.
-
예제:
SELECT MIN(salary) AS LowestSalary, MAX(salary) AS HighestSalary FROM Employees;
GROUP BY
사용
집계 함수는 GROUP BY
와 함께 사용할 때 가장 강력하며, 함수를 적용하기 전에 하나 이상의 열을 기준으로 행을 그룹화합니다.
예제: 제품 및 위치별 단위 합계
SELECT product, location, SUM(units) AS total_units FROM Sales GROUP BY product, location;
HAVING
으로 필터링
HAVING
절은 집계 결과를 기준으로 그룹을 필터링합니다(집계 전에 행을 필터링하는 WHERE
와 달리).
예제: 평균 급여가 600 이상인 부서
SELECT department, AVG(salary) AS avg_salary FROM Employees GROUP BY department HAVING AVG(salary) > 600;
NULL 처리
COUNT(*)
를 제외하고 집계 함수는 기본적으로 NULL 값을 무시합니다. 이렇게 하면 요약이 누락된 데이터로 인해 왜곡되지 않습니다.
확장된 집계 함수
많은 RDBMS가 다음과 같은 고급 옵션을 지원합니다.
VARIANCE()
,STDDEV()
– 통계적 측정GROUPING_ID()
,LISTAGG()
,STRING_AGG()
– 그룹 메타데이터 또는 문자열 연결- 기존의 모든 집계는 윈도우 함수를 위해
OVER()
절을 지원합니다.
사용 사례 예시
Orders
테이블을 가정합니다.
SELECT customer, COUNT(*) AS order_count, SUM(total_amount) AS total_spent, AVG(total_amount) AS avg_order_value, MIN(total_amount) AS min_order, MAX(total_amount) AS max_order FROM Orders GROUP BY customer HAVING SUM(total_amount) > 1000;
이 쿼리는 고객별 주요 메트릭을 요약한 다음 총 지출이 1,000 이상인 고객만 표시하도록 필터링합니다.
결론
집계 함수(COUNT
, SUM
, AVG
, MIN
, MAX
등)는 대규모 데이터 세트를 요약하기 위한 SQL의 기초입니다. GROUP BY
와 결합하고 HAVING
을 사용하여 필터링하면 합계, 평균, 극단값 및 개수와 같은 필수 분석 질문에 답변할 수 있습니다.
FAQs
여러 행에서 요약된 데이터를 반환하는 함수입니다.
각 그룹에 대해 집계가 계산되도록 행을 그룹화합니다.
COUNT(*)를 제외하고 대부분의 집계 함수는 NULL 값을 무시합니다.
백엔드 프로젝트 호스팅을 위한 최고의 선택, Leapcell입니다.
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
다국어 지원
- Node.js, Python, Go 또는 Rust로 개발하십시오.
무제한 프로젝트를 무료로 배포
- 사용량에 대해서만 지불하십시오 — 요청 없음, 요금 없음.
탁월한 비용 효율성
- 유휴 요금 없이 종량제로 지불하십시오.
- 예: $25는 평균 응답 시간 60ms에서 694만 건의 요청을 지원합니다.
간소화된 개발자 경험
- 간편한 설정을 위한 직관적인 UI.
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합.
- 실행 가능한 통찰력을 위한 실시간 메트릭 및 로깅.
손쉬운 확장성 및 고성능
- 고도의 동시성을 쉽게 처리할 수 있는 자동 확장.
- 운영 오버헤드가 없으므로 구축에만 집중하십시오.
설명서에서 자세히 알아보세요!
X에서 팔로우하세요: @LeapcellHQ