MySQL에서 열의 평균값 계산하기
MySQL의 집계 함수 AVG()를 사용하면 특정 열(컬럼)에 저장된 숫자 값들의 평균을 아주 간단하게 구할 수 있습니다. 성적, 판매량, 점수 등 수치 데이터의 통계를 낼 때 가장 많이 활용되는 함수입니다.
기본 문법
AVG() 함수의 기본적인 사용 문법은 다음과 같습니다.
SELECT AVG(yourColumnName) AS anyVariableName FROM yourTableName;
예제 테이블 생성
개념을 쉽게 이해하기 위해 먼저 예제용 테이블을 만들어 보겠습니다. 아래는 테이블을 생성하는 쿼리입니다.
mysql> CREATE TABLE AverageCalculateDemo
-> (
-> SubjectMarks INT
-> );
Query OK, 0 rows affected (0.67 sec)
다음으로 테이블에 샘플 레코드를 삽입하는 쿼리입니다.
mysql> INSERT INTO AverageCalculateDemo VALUES(70);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO AverageCalculateDemo VALUES(80);
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO AverageCalculateDemo VALUES(65);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO AverageCalculateDemo VALUES(55);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO AverageCalculateDemo VALUES(60);
Query OK, 1 row affected (0.23 sec)
저장된 데이터 확인하기
SELECT 문을 사용하면 테이블에 입력된 모든 레코드를 조회할 수 있습니다.
mysql> SELECT *FROM AverageCalculateDemo;
위 쿼리의 실행 결과는 다음과 같습니다.
+--------------+
| SubjectMarks |
+--------------+
| 70 |
| 80 |
| 65 |
| 55 |
| 60 |
+--------------+
5 rows in set (0.00 sec)
평균값을 계산하는 쿼리
이제 AVG() 함수를 사용해 SubjectMarks 열의 평균을 계산해 보겠습니다.
mysql> SELECT AVG(SubjectMarks) AS AverageOfNumbers FROM AverageCalculateDemo;
실행 결과, 열 전체의 평균값이 출력됩니다.
+------------------+
| AverageOfNumbers |
+------------------+
| 66.0000 |
+------------------+
1 row in set (0.00 sec)
추가 팁: 소수점 자릿수 조절과 NULL 처리
AVG() 함수는 기본적으로 소수점 네 자리까지 결과를 표시합니다. 원하는 자릿수로 반올림하고 싶다면 ROUND() 함수를 함께 사용하면 됩니다.
mysql> SELECT ROUND(AVG(SubjectMarks), 2) AS Average FROM AverageCalculateDemo;
또한 AVG() 함수는 계산 시 NULL 값을 자동으로 제외합니다. 따라서 데이터 중간에 NULL이 포함되어 있어도 실제 값들만으로 정확한 평균을 구할 수 있다는 점을 기억해 두시면 유용합니다.