MySQL에는 조화 평균(Harmonic Mean)이나 2차 평균(Quadratic Mean, 제곱평균제곱근)을 계산하는 전용 함수가 없습니다. 하지만 COUNT(), SUM(), SQRT() 같은 기본 집계 함수를 조합하면 손쉽게 구현할 수 있습니다.
각 평균의 수식은 다음과 같습니다.
- 조화 평균: n / Σ(1/xᵢ) — 값들의 역수 합으로 나눈 값
- 2차 평균(RMS): √(Σ(xᵢ²) / n) — 값들을 제곱한 후 평균을 내고 다시 제곱근을 취한 값
1. 테이블 생성
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable1606 -> ( -> Value int -> ); Query OK, 0 rows affected (0.55 sec)
2. 데이터 삽입
INSERT 명령어를 사용해 샘플 데이터를 입력합니다.
mysql> insert into DemoTable1606 values(5); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable1606 values(10); Query OK, 1 row affected (0.12 sec)
3. 데이터 확인
SELECT 문으로 저장된 모든 레코드를 조회합니다.
mysql> select * from DemoTable1606;
실행 결과는 다음과 같습니다.
+-------+ | Value | +-------+ | 5 | | 10 | +-------+ 2 rows in set (0.00 sec)
4. 조화 평균과 2차 평균 계산 쿼리
아래 쿼리 하나로 두 가지 평균을 동시에 계산할 수 있습니다.
mysql> select (count(*)/sum(1/Value)) as HarmonicMean, -> sqrt(sum(Value * Value)/count(*)) as QuadraticMean -> from DemoTable1606;
실행 결과는 다음과 같습니다.
+--------------+-------------------+ | HarmonicMean | QuadraticMean | +--------------+-------------------+ | 6.6667 | 7.905694150420948 | +--------------+-------------------+ 1 row in set (0.03 sec)
결과 해석
값 5와 10에 대해 산술 평균은 7.5입니다. 조화 평균은 약 6.67로 산술 평균보다 작게 나오며, 2차 평균은 약 7.91로 산술 평균보다 크게 나옵니다. 이는 일반적으로 조화 평균 ≤ 기하 평균 ≤ 산술 평균 ≤ 2차 평균의 관계가 성립하기 때문입니다.
조화 평균은 주로 속도나 비율의 평균을 구할 때 유용하고, 2차 평균(RMS)은 신호 처리나 통계에서 변동 크기를 나타낼 때 자주 활용됩니다.