【发布时间】:2012-05-04 23:18:29
【问题描述】:
我正在运行一个 sql 查询,其中有一些平均值,现在我想要这些平均值的平均值,所以
AVG(q1) as q1,
AVG(q2) as q2,
AVG(q3) as q3,
AVG(q4) as q4,
然后我不知道如何获得所有平均值的平均值,因为我做不到 AVG(q1,q2,q3,q4) 和 AVG(q1+q2+q3+q4+q5) 不会返回所有行和列的总平均值,而只会返回平均值每一行。
【问题讨论】:
我正在运行一个 sql 查询,其中有一些平均值,现在我想要这些平均值的平均值,所以
AVG(q1) as q1,
AVG(q2) as q2,
AVG(q3) as q3,
AVG(q4) as q4,
然后我不知道如何获得所有平均值的平均值,因为我做不到 AVG(q1,q2,q3,q4) 和 AVG(q1+q2+q3+q4+q5) 不会返回所有行和列的总平均值,而只会返回平均值每一行。
【问题讨论】:
最简单的方法是手动计算
(AVG(q1) + AVG(q2) ... + AVG(qn))/(n*1.0)
【讨论】:
是的,您可以通过另一个 SELECT 来“重用”这些值
SELECT a.*,(q1+q2+q3+q4)/n as avg_all FROM (
SELECT AVG(q1) as q1,
AVG(q2) as q2,
AVG(q3) as q3,
AVG(q4) as q4.... ) a
【讨论】: