이전 포스팅에서는 기하평균의 의미와 함께 엑셀(Excel)을 사용하여 데이터를 검증해보았다.
https://walkingfox.tistory.com/173
이번 포스트에서는 기하평균을 SQL 에서 구하는 방법을 살펴보도록 한다.
테이블에 아래와 같은 id, rate 이라는 두 컬럼으로 구성된 list 라는 테이블이 있다고 가정을 한다.
여기서 산술평균은 avg 라는 함수를 사용하여 쉽게 구할 수 있다.
기하평균의 경우 athena 또는 presto 의 경우처럼 DB 차원에서 함수가 제공되는 경우는 geometric_mean 이라는 함수로 쉽게 구할 수 있다.
하지만 mysql 의 경우처럼 함수가 제공되지 않는 경우는
exp( sum(ln(column_name)) / count(column_name) )
같이, ln 로그함수, sum 합계함수, exp 지수함수를 함께 사용하여 구할 수 있다.
아래의 예를 보면 같은 값이 계산되고 있음을 알 수 있다.
마지막으로는 윈도우함수(Windows Function)을 이용하여 각 단계별로, 산술평균, 기하평균 그리고 mysql 에서의 기하평균을 구해보자.
'분석 > 데이터분석' 카테고리의 다른 글
[BigQuery] 빅쿼리에서 여러 날짜별 테이블을 한 쿼리로 (0) | 2022.08.17 |
---|---|
[MySQL] date_trunc 함수를 구현하자. (0) | 2022.08.17 |
곱의 평균 (기하평균) (0) | 2022.07.22 |
[BigQuery] 다양한 쿼리 예제 (0) | 2022.06.26 |
[BigQuery] Array, Struct 그리고 unnest (0) | 2022.06.26 |