SQL

SQL 집계 함수와 GROUP BY

chungmani 2026. 7. 28. 21:50

 

1. COUNT() — 데이터 개수 세기

조건에 맞는 데이터가 몇 개인지 확인할 때 사용

SELECT COUNT(*)
FROM users;
 

users 테이블에 있는 전체 행의 개수를 반환한다.

특정 컬럼의 개수를 셀 수도 있다.

SELECT COUNT(email)
FROM users;
 

email 값이 NULL이 아닌 데이터의 개수를 센다.

 


2. MAX() — 최댓값

특정 컬럼에서 가장 큰 값을 찾을 때 사용

SELECT MAX(price)
FROM products;
 

상품 중 가장 비싼 가격을 조회한다.


3. MIN() — 최솟값

특정 컬럼에서 가장 작은 값을 찾을 때 사용

SELECT MIN(price)
FROM products;
 

상품 중 가장 저렴한 가격을 조회한다.

 


4. AVG() — 평균값

특정 컬럼의 평균을 계산한다.

SELECT AVG(price)
FROM products;
 

전체 상품의 평균 가격을 조회한다.

 


5. GROUP BY — 같은 종류끼리 그룹화

GROUP BY는 특정 컬럼을 기준으로 데이터를 그룹으로 묶을 때 사용한다.

product_namecategoryprice
Galaxy S25 전자제품 1,200,000
iPhone 16 전자제품 1,350,000
셔츠 의류 50,000
바지 의류 70,000

 

카테고리별 상품 개수를 구하고 싶다면:

SELECT category, COUNT(*)
FROM products
GROUP BY category;
 

 

결과:

categoryCOUNT(*)
전자제품 2
의류 2

GROUP BY category가 전자제품끼리, 의류끼리 묶어서 각각 계산해주는 것이다.


집계 함수 + GROUP BY

GROUP BY는 집계 함수와 함께 사용하면 정말 많이 쓰인다.

카테고리별 평균 가격

SELECT category, AVG(price)
FROM products
GROUP BY category;
 

카테고리별 최고 가격

SELECT category, MAX(price)
FROM products
GROUP BY category;
 

카테고리별 최저 가격

SELECT category, MIN(price)
FROM products
GROUP BY category;
 

카테고리별 상품 개수

SELECT category, COUNT(*)
FROM products
GROUP BY category;
 

'SQL' 카테고리의 다른 글

REPLACE, SUBSTRING, CONCAT 함수 정리  (0) 2026.07.31
SQL ORDER BY 정리  (0) 2026.07.29
[SQL] SELECT와 WHERE로 원하는 데이터 조회하기  (0) 2026.07.21