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

MySQL에서 단일 행으로 평균의 평균 구하는 방법 (AVG() 활용)

MySQL에서 평균의 평균(Average of Average) 구하기

단일 행(row)에 여러 열(column)의 값이 저장되어 있을 때, 이 값들을 모두 반영한 전체 평균을 한 번의 쿼리로 계산할 수 있습니다. MySQL에서는 집계 함수 AVG()를 활용하면 되는데, 핵심은 각 행의 모든 열 값을 더한 뒤 AVG()를 적용하고, 마지막에 열 개수로 나누는 것입니다.

1. 테이블 생성

먼저 세 개의 정수형 열을 가진 테이블을 생성합니다.

mysql> create table DemoTable
(
    Value1 int,
    Value2 int,
    Value3 int
);
Query OK, 0 rows affected (0.54 sec)

2. 데이터 삽입

INSERT 명령을 사용하여 테이블에 레코드를 삽입합니다.

mysql> insert into DemoTable values(10,20,30);
Query OK, 1 row affected (0.30 sec)
mysql> insert into DemoTable values(13,15,18);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values(21,31,41);
Query OK, 1 row affected (0.21 sec)

3. 데이터 확인

SELECT 명령으로 저장된 레코드를 조회합니다.

mysql> select *from DemoTable;

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

+--------+--------+--------+
| Value1 | Value2 | Value3 |
+--------+--------+--------+
| 10     | 20     | 30     |
| 13     | 15     | 18     |
| 21     | 31     | 41     |
+--------+--------+--------+
3 rows in set (0.00 sec)

4. 평균의 평균을 구하는 쿼리

다음 쿼리를 사용하면 단일 행 결과로 전체 평균을 구할 수 있습니다.

mysql> select avg(Value1+Value2+Value3)/3.0 from DemoTable;

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

+-------------------------------+
| avg(Value1+Value2+Value3)/3.0 |
+-------------------------------+
| 22.11111111                   |
+-------------------------------+
1 row in set (0.00 sec)

쿼리 동작 원리

avg(Value1+Value2+Value3)는 각 행에서 세 열의 합을 먼저 구한 후, 그 합들의 평균을 계산합니다. 위 예제에서는 각 행의 합이 60, 46, 93이므로 (60 + 46 + 93) / 3 = 66.33이 되고, 여기서 다시 3.0으로 나누면 최종적으로 약 22.11이라는 전체 평균값이 도출됩니다.

또한 3.0처럼 소수점 형태의 숫자로 나누면 정수 나눗셈이 아닌 실수 나눗셈이 수행되기 때문에, 소수점 이하까지 포함한 더 정확한 결과를 얻을 수 있다는 점도 기억해 두면 좋습니다.