【问题标题】:why this query is faling?为什么这个查询失败了?
【发布时间】:2011-08-08 10:27:39
【问题描述】:
select max( sum(duration) ),cd from rent group by cd; 

.

ERROR 1111 (HY000):组函数使用无效

【问题讨论】:

  • 因为你没有什么可分组的?
  • 这种分组方式无论如何都不合适,检查mysql文档你得到的结果甚至可以跨越所有期望的限制,只能按聚合中使用的字段分组功能

标签: mysql sql mysql-error-1111


【解决方案1】:

来自文档 - 对值集进行操作的分组(聚合)函数。。 SUM 返回标量值。

这是你想要的吗?

SELECT MAX(duration_sum_by_cd) FROM (
  SELECT SUM(duration) duration_sum_by_cd FROM rent 
    GROUP BY cd; 
) t

【讨论】:

    【解决方案2】:

    那个查询很糟糕。首先,我认为您不能在总和周围设置最大值...第二,您正在对不在所选列中的列“cd”进行分组。

    我建议从here做一些/许多教程

    【讨论】:

    • -1 您可以在 CD 上分组,只是不能在 SUM 上达到最大值,因为 SUM 输出单个值。
    • 你为什么投反对票?伙计们的查询以前是 select max( sum(duration) ) from rent group by cd; 它在选择中没有 cd...
    • 是的,这就是我投反对票的原因!你可以在 CD 上做一个组,即使你选择的没有 CD。所以你的答案是错误的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多