데이터의 평균값을 구하는 함수

EX1) 모든 시험 성적 데이터에 대한 평균 점수

SELECT AVG(score) as AVG_SCORE FROM sqld;

Untitled

Oracle 기준인 책의 예시에서는 35 라고 정수로 표현되는데 MySQL에서는 소수로 표현된다.

EX2) 과목별 평균 점수

SELECT student_name, subject, score,
	   AVG(score) OVER(PARTITION BY subject) as AVG_SCORE
FROM sqld;

Untitled

역시나 소수점 4자리까지 표현되고 있다.

MySQL에서 정수로 표현하기 위해서는 추가로 ROUND 함수 사용이 필요한 것 같다.

SELECT student_name, subject, score,
	   ROUND(AVG(score) OVER(PARTITION BY subject)) as AVG_SCORE
FROM sqld;

Untitled

EX3) 과목별 평균 점수 이상을 받은 사람만 출력

SELECT student_name, subject, score
FROM (
	SELECT student_name, subject, score,
	   ROUND(AVG(score) OVER(PARTITION BY subject)) as AVG_SCORE
	FROM sqld
) as temp
WHERE score >= AVG_SCORE;

Untitled