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
반응형
'IT > DB' 카테고리의 다른 글
데이터베이스 함수에서 cast() 함수 역할은? (0) | 2025.06.18 |
---|---|
sqLite 날짜형태 변경하는 쿼리는? (0) | 2025.06.18 |
sqlite에서 평균값 구하는 함수는? (0) | 2025.06.17 |
sqlite 소수점 자리수 반올림하는 방법은? (0) | 2025.06.17 |
db 테이블 생성 시 외래키 역할과 외래키를 설정하고 안하고의 차이는? (0) | 2025.05.16 |