반응형
MySQL에서 데이터를 분석할 때 가장 자주 사용되는 구문 중 하나가 바로 집계 함수(aggregate functions)이다.
집계 함수는 데이터를 세어보고, 더하고, 평균을 내고, 최댓값/최솟값을 구하는 데 필수적이다.
📌 COUNT() – 행의 개수를 세는 함수
COUNT()는 지정된 컬럼이나 전체 행의 개수를 반환하는 함수이다.
SELECT COUNT(*) FROM users;
- users 테이블의 전체 행 수를 반환
특정 조건을 만족하는 행만 세고 싶을 경우 WHERE절과 함께 사용한다.
SELECT COUNT(*) FROM users WHERE age >= 30;
- 30세 이상 사용자 수 조회
반응형
📌 SUM() – 총합을 계산하는 함수
SUM() 함수는 숫자형 컬럼의 합계를 반환한다.
SELECT SUM(price) FROM orders;
- orders 테이블의 모든 주문 금액 합계를 반환
조건을 추가하면 특정 그룹의 합계를 계산할 수도 있다.
SELECT SUM(price) FROM orders WHERE user_id = 10;
📌 AVG() – 평균값을 계산하는 함수
AVG()는 숫자형 컬럼의 평균값을 반환한다.
SELECT AVG(age) FROM users;
- 전체 사용자의 평균 나이 조회
📌 MAX() – 최댓값 구하기
SELECT MAX(score) FROM students;
- students 테이블의 최고 점수 확인
반응형
📌 MIN() – 최솟값 구하기
sql
복사편집
SELECT MIN(score) FROM students;
- students 테이블의 최저 점수 확인
✅ GROUP BY와 함께 사용하기
집계 함수는 GROUP BY와 함께 사용하면 그룹별 통계를 낼 수 있다.
SELECT department, COUNT(*) AS 인원수
FROM employees
GROUP BY department;
- 부서별 직원 수를 집계
SELECT category, SUM(price) AS 총합계
FROM products
GROUP BY category;
- 상품 카테고리별 총 가격 계산
반응형
🧪 복합 집계 예제
SELECT
department,
COUNT(*) AS 인원수,
AVG(salary) AS 평균급여,
MAX(salary) AS 최고급여,
MIN(salary) AS 최저급여
FROM employees
GROUP BY department;
- 부서별 인원 수, 평균급여, 최고/최저 급여를 한 번에 조회할 수 있는 강력한 쿼리
⚠️ 집계 함수 사용 시 주의사항
- NULL 값은 무시된다. 예를 들어 AVG()는 NULL을 포함하지 않음
- COUNT(*)는 NULL 포함 모든 행을 세고, COUNT(컬럼)은 NULL을 제외함
📎 공식 문서 참고
MySQL Aggregate Functions (공식 문서)
https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html
반응형
'DB' 카테고리의 다른 글
[MySQL] SELECT + 서브쿼리 활용법 (쿼리 안에 쿼리) (0) | 2025.06.26 |
---|---|
[MySQL] SELECT JOIN 완벽 정리 – INNER JOIN, LEFT JOIN, RIGHT JOIN 차이와 실전 예제 (0) | 2025.06.25 |
[MySQL] SELECT + DATE_FORMAT / NOW() 함수 완벽 정리(날짜포맷, 현재시간) (0) | 2025.06.25 |
[MySQL] SELECT CASE / IF 조건 분기 (쿼리 조건문 활용) (0) | 2025.06.25 |
[MySQL] SELECT DISTINCT – 중복된 데이터 없이 깔끔하게 조회하는 법 (0) | 2025.06.25 |
[MySQL] SELECT LIMIT / OFFSET (행의 개수 제한 / 페이징 처리) (0) | 2025.06.24 |
[MySQL] SELECT GROUP BY + HAVING (그룹화와 조건 필터링) (0) | 2025.06.24 |
[MySQL] SELECT ORDER BY 정렬 방법 완벽 정리 (0) | 2025.06.24 |