【发布时间】:2017-01-29 19:20:50
【问题描述】:
如何从 MySQL 中的平均值中获取最大值?以下查询返回按客户分组的表订单金额的平均值。
SELECT AVG(amount)
FROM orders
GROUP BY cust;
我想使用带有聚合函数的单个查询从平均值中获取最大值。使用 ORDER BY ... DESC LIMIT 1 肯定有效,但我感兴趣的是仅使用聚合函数获得最大平均值。有可能吗?谢谢
【问题讨论】:
如何从 MySQL 中的平均值中获取最大值?以下查询返回按客户分组的表订单金额的平均值。
SELECT AVG(amount)
FROM orders
GROUP BY cust;
我想使用带有聚合函数的单个查询从平均值中获取最大值。使用 ORDER BY ... DESC LIMIT 1 肯定有效,但我感兴趣的是仅使用聚合函数获得最大平均值。有可能吗?谢谢
【问题讨论】:
select max(avg_value)
from
(
SELECT AVG(amount) avg_value FROM orders GROUP BY cust
) tmp
【讨论】:
tmp。
SELECT AVG(amount) avg_value FROM orders GROUP BY cust 是一个子查询。您需要命名子查询。我选择了tmp 作为名称,但您可以使用任何您喜欢的名称。
我会使用 order by 和 limit 来做到这一点:
SELECT AVG(o.amount) as avg_value
FROM orders o
GROUP BY cust
ORDER BY avg_value DESC
LIMIT 1;
这也允许您获得最大的cust。
【讨论】: