为啥这个查询失败了?
Posted
技术标签:
【中文标题】为啥这个查询失败了?【英文标题】: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文档你得到的结果甚至可以跨越所有期望的限制,只能按聚合中使用的字段分组功能 【参考方案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。所以你的答案是错误的。以上是关于为啥这个查询失败了?的主要内容,如果未能解决你的问题,请参考以下文章