본문 바로가기

IT/DB

데이터베이스 sql avg 평균 함수를 조건절에 쓰는 방법은?

728x90
반응형

 

 

 

 

AVG() 함수는 **집계 함수(aggregate function)**이기 때문에 일반적인 WHERE 절에는 직접 쓸 수 없습니다.


하지만 조건을 걸고 평균을 구하거나, 평균값을 조건으로 필터링하려면 아래와 같은 방법을 사용해야 합니다:

 


✅ 1. 특정 조건을 만족하는 값들의 평균 구하기 → WHERE + AVG()

 
SELECT AVG(score) AS avg_score FROM students WHERE class = 'A';
 

🔍 WHERE절은 평균을 구할 대상을 필터링합니다.


✅ 2. 평균값을 기준으로 조건 걸기 → HAVING 사용

HAVING은 집계 함수의 결과에 조건을 걸 때 사용합니다. GROUP BY와 함께 자주 쓰입니다.

예: 각 반의 평균 점수가 80 이상인 반만 조회

 
SELECT class, AVG(score) AS avg_score 
FROM students 
GROUP BY class 
HAVING AVG(score) >= 80;

✅ 3. AVG() 결과를 다른 조건에 활용 → 서브쿼리 사용

예: 전체 평균보다 높은 점수만 조회

 
SELECT name, score 
FROM students 
WHERE score > (SELECT AVG(score) FROM students);

✅ 요약

목적 사용하는 절
평균을 구할 대상 제한 WHERE
그룹별 평균을 조건으로 필터링 HAVING
평균값을 기준으로 비교 필터링 서브쿼리

 

 

300x250
반응형