SQL 집계 함수(AGGREGATE FUNCTIONS)
SQL에서 집계 함수(Aggregate Function)는 여러 행의 데이터를 하나의 결과 값으로 요약하는 데 사용한다. 이는 데이터 분석, 보고서 생성 및 데이터 요약에 필수적인 기능이다. 이번 글에서는 대표적인 SQL 집계 함수들을 실습 예제와 함께 설명한다.
1. 기본 데이터 테이블
예제에서는 startups 테이블을 사용하며, 이 테이블에는 스타트업 관련 데이터가 저장되어 있다.
SELECT *
FROM startups;
이 쿼리는 startups 테이블의 모든 데이터를 조회하는 기본적인 SQL 문이다.
2. COUNT(): 행 개수 구하기
COUNT() 함수는 특정 조건을 만족하는 행의 개수를 반환한다.
SELECT COUNT(*)
FROM startups;
이 쿼리는 startups 테이블에 있는 전체 행(즉, 스타트업 개수)을 반환한다.
3. SUM(): 합계 구하기
SUM() 함수는 특정 열의 합계를 구하는 데 사용한다.
SELECT SUM(valuation)
FROM startups;
이 쿼리는 startups 테이블에서 모든 스타트업의 valuation(기업 가치)의 총합을 계산한다.
4. MAX(): 최대값 구하기
MAX() 함수는 특정 열에서 가장 큰 값을 찾는 데 사용한다.
SELECT MAX(raised)
FROM startups
WHERE stage = 'Seed';
이 쿼리는 Seed 단계의 스타트업 중 가장 많은 raised(모금액)를 찾는다.
5. MIN(): 최소값 구하기
MIN() 함수는 특정 열에서 가장 작은 값을 찾는다.
SELECT MIN(founded)
FROM startups;
이 쿼리는 startups 테이블에서 가장 오래된(최초로 설립된) 스타트업의 founded 연도를 반환한다.
6. AVG(): 평균값 구하기
AVG() 함수는 특정 열의 평균값을 계산한다.
SELECT category, ROUND(AVG(valuation), 2)
FROM startups
GROUP BY 1
ORDER BY 2 DESC;
이 쿼리는 category(스타트업 카테고리)별 평균 valuation을 계산하고, 반올림하여 소수점 2자리까지 표시한다. 그런 다음, 평균 valuation이 높은 순으로 정렬한다.
7. GROUP BY와 COUNT() 활용하기
GROUP BY를 사용하면 특정 그룹별로 집계를 수행할 수 있다.
SELECT category, COUNT(*)
FROM startups
GROUP BY 1
HAVING COUNT(*) >= 3;
이 쿼리는 category별로 스타트업 개수를 계산한 후, 개수가 3개 이상인 카테고리만 출력한다.
8. GROUP BY와 AVG() 활용하기
다음 예제는 평균 직원 수(employees)가 500명 이상인 지역(location)만 조회한다.
SELECT location, AVG(employees)
FROM startups
GROUP BY location
HAVING AVG(employees) > 500;
이 쿼리는 location별 평균 직원 수를 계산하고, 그 값이 500명 이상인 경우에만 출력한다.
집계 함수는 데이터를 분석하고 요약하는 데 중요한 역할을 한다. COUNT(), SUM(), MAX(), MIN(), AVG()와 같은 함수들을 적절히 활용하면 의미 있는 인사이트를 얻을 수 있다. 또한 GROUP BY와 HAVING을 함께 사용하면 그룹별 분석도 가능하다.
'SQL' 카테고리의 다른 글
SQL Multi-table join (Using Lyft Trip Data) (0) | 2025.04.01 |
---|---|
SQL Queries 실습 (0) | 2025.03.28 |
SQL 연습 DDL, DML (0) | 2025.03.27 |
Pivot table (0) | 2024.06.04 |
Sub Query (1) | 2024.06.03 |