Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 행별 평균값 계산하기 – AVG() 함수 완벽 가이드

MySQL AVG() 함수로 평균값 계산하기

MySQL에서 테이블의 각 컬럼에 대한 평균값을 계산하려면 내장 집계 함수인 AVG()를 사용하면 됩니다. AVG() 함수는 지정한 컬럼의 모든 행 값을 합산한 뒤, NULL이 아닌 값의 개수로 나누어 평균을 반환합니다.

기본 문법

SELECT avg(컬럼명1) AS 별칭1,
avg(컬럼명2) AS 별칭2,
avg(컬럼명3) AS 별칭3
FROM 테이블명;

AS 키워드를 사용해 별칭(alias)을 지정하면 결과 집합의 컬럼 이름을 원하는 대로 표시할 수 있어 가독성이 좋아집니다.

예제 테이블 생성하기

먼저 실습용 테이블을 만들어 보겠습니다. 세 개의 정수형(int) 컬럼을 가진 demo31 테이블입니다.

mysql> create table demo31
-> (
-> value1 int,
-> value2 int,
-> value3 int
-> );
Query OK, 0 rows affected (2.27 sec)

데이터 삽입하기

INSERT 명령문으로 몇 개의 레코드를 추가합니다.

mysql> insert into demo31 values(34,55,67);
Query OK, 1 row affected (0.27 sec)

mysql> insert into demo31 values(50,60,70);
Query OK, 1 row affected (0.16 sec)

mysql> insert into demo31 values(100,200,300);
Query OK, 1 row affected (0.14 sec)

mysql> insert into demo31 values(10,300,200);
Query OK, 1 row affected (0.15 sec)

저장된 데이터 확인하기

SELECT 문으로 테이블에 저장된 전체 레코드를 조회합니다.

mysql> select *from demo31;

실행 결과는 다음과 같습니다.

+--------+--------+--------+
| value1 | value2 | value3 |
+--------+--------+--------+
| 34 | 55 | 67 |
| 50 | 60 | 70 |
| 100 | 200 | 300 |
| 10 | 300 | 200 |
+--------+--------+--------+
4 rows in set (0.00 sec)

행 전체 평균값 계산 쿼리

이제 각 컬럼의 평균값을 한 번의 쿼리로 계산해 보겠습니다.

mysql> select avg(value1) as Value1_AVG,
-> avg(value2) as Value2_AVG,
-> avg(value3) as Value3_AVG
-> from demo31;

위 쿼리는 다음과 같은 결과를 출력합니다.

+------------+------------+------------+
| Value1_AVG | Value2_AVG | Value3_AVG |
+------------+------------+------------+
| 48.5000 | 153.7500 | 159.2500 |
+------------+------------+------------+
1 row in set (0.00 sec)

결과 해석

  • value1 평균: (34 + 50 + 100 + 10) ÷ 4 = 48.5000
  • value2 평균: (55 + 60 + 200 + 300) ÷ 4 = 153.7500
  • value3 평균: (67 + 70 + 300 + 200) ÷ 4 = 159.2500

AVG() 함수는 소수점 이하 자릿수까지 정확한 평균값을 반환하며, 컬럼에 NULL 값이 포함되어 있으면 해당 행은 자동으로 계산에서 제외됩니다. 여러 컬럼의 평균을 동시에 구할 때는 위 예제처럼 AVG()를 여러 번 사용하고 각각 별칭을 붙여주면 깔끔하게 결과를 확인할 수 있습니다.