【问题标题】:max average value in MySqlMySql中的最大平均值
【发布时间】:2017-01-29 19:20:50
【问题描述】:

如何从 MySQL 中的平均值中获取最大值?以下查询返回按客户分组的表订单金额的平均值。

SELECT AVG(amount)
FROM orders
GROUP BY cust;

我想使用带有聚合函数的单个查询从平均值中获取最大值。使用 ORDER BY ... DESC LIMIT 1 肯定有效,但我感兴趣的是仅使用聚合函数获得最大平均值。有可能吗?谢谢

【问题讨论】:

    标签: mysql sql max average


    【解决方案1】:
    select max(avg_value)
    from 
    (
      SELECT AVG(amount) avg_value FROM orders GROUP BY cust
    ) tmp
    

    【讨论】:

    • 谢谢,这行得通。但是,无法避免别名?
    • 这行得通。但是,我不明白这里需要tmp
    • @jay: SELECT AVG(amount) avg_value FROM orders GROUP BY cust 是一个子查询。您需要命名子查询。我选择了tmp 作为名称,但您可以使用任何您喜欢的名称。
    【解决方案2】:

    我会使用 order bylimit 来做到这一点:

    SELECT AVG(o.amount) as avg_value
    FROM orders o
    GROUP BY cust
    ORDER BY avg_value DESC
    LIMIT 1;
    

    这也允许您获得最大的cust

    【讨论】:

    • 我认为这是更好的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多