SQL에서 데이터의 그룹화를 통해 통계적인 값을 추출하는 기능은 데이터 분석의 핵심입니다. 특히 COUNT와 AVG 같은 그룹 함수는 데이터베이스 쿼리에서 자주 활용되는 기능입니다. 본 포스팅에서는 이들 함수의 사용법과 다양한 활용 예제에 대해 설명드리겠습니다.

SQL 그룹 함수란?
SQL 그룹 함수는 데이터 집합을 특정 기준에 따라 집계하여 통계적인 정보를 제공하는 데 사용합니다. GROUP BY 절과 함께 사용하여 특정 열을 기준으로 데이터를 그룹화하고, 이 그룹에 대해 COUNT, AVG, SUM 등의 여러 집계 함수를 적용할 수 있습니다.
COUNT 함수
COUNT 함수는 지정한 조건에 해당하는 행의 개수를 계산합니다. 이 함수는 주로 데이터 레코드의 수를 파악하는 데 유용하게 사용됩니다. 기본적인 사용법은 다음과 같습니다:
SELECT COUNT(열_이름) FROM 테이블_이름;
예를 들어, 특정 도시 테이블에서 해당 도시에 거주하는 인구의 수를 세고 싶다면 아래와 같은 쿼리를 사용할 수 있습니다:
SELECT COUNT(*) FROM city WHERE country = '대한민국';
위의 쿼리는 ‘대한민국’이라는 국가에 해당하는 도시의 총 개수를 반환합니다. 이처럼 COUNT 함수는 효율적으로 특정 조건을 만족하는 데이터의 수를 집계하는 데 유용합니다.
AVG 함수
AVG 함수는 주어진 열의 평균 값을 반환합니다. 이 함수는 재무 데이터나 통계 데이터를 분석할 때 사용되곤 합니다. 기본적인 사용법은 다음과 같습니다:
SELECT AVG(열_이름) FROM 테이블_이름;
예를 들어, 도시별 인구 수의 평균을 구하고자 할 때는 아래와 같은 쿼리를 사용할 수 있습니다:
SELECT AVG(Population) FROM city GROUP BY country;
위 쿼리는 각 나라별로 도시의 인구 평균을 산출하여 반환합니다. 이를 통해 각 나라가 보유한 도시들의 평균 인구 수를 한눈에 파악할 수 있습니다.
COUNT와 AVG의 활용 예제
COUNT와 AVG 함수를 결합하여 더욱 다양한 정보를 추출할 수 있습니다. 아래는 그 활용 예시입니다.
나라별 도시 개수 집계
각 나라에 속한 도시의 개수를 세는 쿼리는 다음과 같습니다:
SELECT CountryCode, COUNT(*) AS CityCount FROM city GROUP BY CountryCode;
이 쿼리는 각 국가별로 도시의 개수를 반환하며, 이를 바탕으로 특정 국가의 도시 밀도를 이해하는 데 도움을 줍니다.
도시별 평균 인구 수
도시의 평균 인구 수를 구하는 쿼리는 다음과 같습니다:
SELECT CountryCode, AVG(Population) AS AvgPopulation FROM city GROUP BY CountryCode;
이 쿼리는 각 나라의 도시들이 가지는 평균 인구 수를 계산하여, 인구 밀도나 도시 발전 수준을 분석하는 데 유용합니다.
그룹화와 조건부 집계
조건에 따라 그룹화된 데이터의 집계 값을 구하고 싶을 때는 HAVING 절을 이용합니다. HAVING 절은 GROUP BY로 그룹화된 데이터에 후처리를 할 수 있는 방법입니다. 예를 들어, 평균 인구 수가 200만 이상인 국가만 추출하고 싶다면 다음과 같은 쿼리를 사용할 수 있습니다:
SELECT CountryCode, AVG(Population) AS AvgPopulation FROM city GROUP BY CountryCode HAVING AVG(Population) >= 2000000;
위의 쿼리는 각 나라의 평균 인구가 200만 이상인 경우에만 해당 국가를 반환합니다. 이와 같이 조건을 설정함으로써 필요한 데이터만 필터링하여 유의미한 정보만을 추출할 수 있습니다.
정렬 및 기타 집계 함수
GROUP BY 구문과 함께 ORDER BY 절을 사용하여 결과값을 정렬하는 것도 가능합니다. 예를 들어, 평균 인구 수를 기준으로 정렬하고자 할 때는 아래와 같은 쿼리로 구성이 가능합니다:
SELECT CountryCode, AVG(Population) AS AvgPopulation FROM city GROUP BY CountryCode ORDER BY AvgPopulation DESC;
위 쿼리는 평균 인구 수가 높은 국가부터 낮은 국가 순서로 결과를 정렬하여 반환합니다.
- SUM() – 총합을 구할 때 사용
- MAX() – 최대값을 구할 때 사용
- MIN() – 최소값을 구할 때 사용
이 외에도 SUM, MAX, MIN 등의 다양한 집계 함수를 사용하여 통계적 분석을 수행할 수 있습니다.

결론
SQL의 COUNT 및 AVG 함수는 데이터 분석에서 매우 중요한 역할을 합니다. 이들을 활용하여 다양한 형태의 데이터 집계와 분석을 실행할 수 있습니다. 충분한 연습과 경험을 통해 이 함수들을 활용하여 SQL 쿼리를 통한 데이터 처리를 더욱 효율적으로 할 수 있기를 바랍니다.
이번 포스팅이 SQL 그룹 함수의 이해에 도움이 되었길 바라며, 실무에서 활용할 수 있는 유용한 정보가 되었기를 바랍니다.
자주 묻는 질문 FAQ
SQL에서 그룹 함수란 무엇인가요?
그룹 함수는 데이터 집합을 특정 기준으로 집계하여 통계적 정보를 제공하는 기능입니다. 주로 COUNT, AVG, SUM 등의 함수를 통해 데이터를 분석할 수 있습니다.
COUNT 함수는 어떻게 사용되나요?
COUNT 함수는 지정된 조건에 일치하는 행의 수를 세는 데 사용됩니다. 예를 들어, 특정 국가의 도시 수를 계산할 때 유용합니다.
AVG 함수는 어떤 용도로 사용하나요?
AVG 함수는 특정 열의 평균 값을 구하는 데 활용됩니다. 예를 들어, 도시별 인구의 평균을 구하는 데 적합합니다.
그룹화된 데이터에 조건을 추가하려면 어떻게 하나요?
HAVING 절을 사용하여 그룹화된 데이터에 조건을 추가할 수 있습니다. 이를 통해 특정 기준을 만족하는 데이터만 필터링할 수 있습니다.