You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中如何计算调和平均数(Harmonic mean)与平方平均数(Quadratic mean)?

嘿,刚好在MySQL里折腾过这类统计运算,我来给你详细拆解下调和平均数和平方平均数的实现方式,顺便把你提到的几种平均数做个汇总,方便你直接复用:

在MySQL中实现各类平均数计算

1. 算术平均数(你已经熟悉的)

直接用内置的AVG()函数就搞定,这是最省心的:

SELECT AVG(column_name) AS arithmetic_mean FROM data_table;

2. 几何平均数(你提到的两种写法都靠谱)

两种写法都能得到正确结果,不过要注意列值必须是正数,不然LN()函数会抛出错误:

-- 写法1:SUM+COUNT组合
SELECT EXP(SUM(LN(column_name)) / COUNT(*)) AS geometric_mean FROM data_table;
-- 写法2:用AVG简化代码
SELECT EXP(AVG(LN(column_name))) AS geometric_mean FROM data_table;

3. 调和平均数

调和平均数的核心公式是 总个数 / 所有数值倒数的和,在MySQL里直接按这个逻辑写就行。不过我之前踩过坑:如果列里有0的话,1/0会触发除以0的错误,所以一定要加条件过滤掉0值;如果有NULL值,用COUNT(column_name)代替COUNT(*)来只统计有效数值:

SELECT COUNT(column_name) / SUM(1/column_name) AS harmonic_mean 
FROM data_table 
WHERE column_name > 0; -- 过滤0值,避免报错

4. 平方平均数(均方根)

平方平均数的公式是 √(所有数值平方的平均数),用MySQL的SQRT()开根号,配合AVG()计算平方的平均值就行,两种写法都可以:

-- 写法1:用POW函数计算平方
SELECT SQRT(AVG(POW(column_name, 2))) AS quadratic_mean FROM data_table;
-- 写法2:直接用乘法,代码更简洁
SELECT SQRT(AVG(column_name * column_name)) AS quadratic_mean FROM data_table;

小提醒:所有这些计算都要保证数值符合数学逻辑,比如几何平均数和调和平均数都要求数值为正,不然结果要么报错要么没有实际意义。

内容的提问来源于stack exchange,提问作者aid78

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:18:27