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

MySQL에서 행(Row) 값의 평균을 계산하는 쿼리 작성법

MySQL에서 하나의 행(row)에 있는 여러 컬럼 값의 평균을 구하려면 해당 컬럼들을 모두 더한 뒤 컬럼 수로 나누면 됩니다. 참고로 AVG() 함수는 열(세로) 방향의 평균을 구하는 집계 함수이므로, 행(가로) 방향의 평균은 산술 연산자를 사용해 직접 계산해야 합니다.

기본 문법

행의 값 평균을 계산하는 기본 문법은 다음과 같습니다.

SELECT (yourTableName.yourColumnName1 + yourTableName.yourColumnName2 + yourTableName.yourColumnName3 + ... + yourTableName.yourColumnNameN) / numberOfColumns AS anyAliasName FROM yourTableName;

예제 테이블 생성

문법을 이해하기 위해 먼저 예제로 사용할 테이블을 만들어 보겠습니다.

mysql> create table calculateAverageDemo
-> (
-> x int,
-> y int,
-> z int
-> );
Query OK, 0 rows affected (1.41 sec)

데이터 삽입

INSERT 명령어를 사용해 테이블에 레코드를 몇 개 삽입합니다.

mysql> insert into calculateAverageDemo values(10,20,30);
Query OK, 1 row affected (0.78 sec)
mysql> insert into calculateAverageDemo values(40,50,70);
Query OK, 1 row affected (0.26 sec)
mysql> insert into calculateAverageDemo values(80,90,220);
Query OK, 1 row affected (0.43 sec)

저장된 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from calculateAverageDemo;

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

+------+------+------+
| x | y | z |
+------+------+------+
| 10 | 20 | 30 |
| 40 | 50 | 70 |
| 80 | 90 | 220 |
+------+------+------+
3 rows in set (0.00 sec)

행 평균 계산 쿼리 실행

이제 각 행의 값 평균을 계산하는 쿼리입니다. x, y, z 세 컬럼의 합을 3으로 나누고, 결과를 알아보기 쉽게 별칭(Alias) 'Average'로 지정했습니다.

mysql> select (calculateAverageDemo.x + calculateAverageDemo.y + calculateAverageDemo.z) / 3
-> AS Average from calculateAverageDemo;

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

+----------+
| Average |
+----------+
| 20.0000 |
| 53.3333 |
| 130.0000 |
+----------+
3 rows in set (0.06 sec)

결과를 살펴보면 첫 번째 행은 (10+20+30)/3 = 20, 두 번째 행은 (40+50+70)/3 ≈ 53.3333, 세 번째 행은 (80+90+220)/3 = 130으로, 각 행별 평균값이 정상적으로 계산된 것을 확인할 수 있습니다.

참고: NULL 값 처리

행 평균 계산 시 주의할 점은, 대상 컬럼 중 하나라도 NULL이 포함되면 전체 결과가 NULL이 된다는 것입니다. 이 경우 IFNULL() 또는 COALESCE() 함수를 함께 사용하면 NULL을 0 등의 기본값으로 치환하여 안정적으로 평균을 계산할 수 있습니다.