无效使用组

时间:2015-11-25 02:33:11

标签: php mysql

我一直在尝试在php上执行此操作,从mysql中的db表读取,但我无法理解它上面的错误是什么。能帮帮我吗? 该表作为包含数字的列(此数字代表一个过程:P)

SELECT *, MAX(COUNT(mi_curso)) maximo
FROM producto
GROUP BY mi_curso

这是显示的错误:

consulta SQL:
SELECT *, MAX(COUNT(mi_curso)) maximo
FROM producto
GROUP BY mi_curso LIMIT 0, 25

MySQL ha dicho: Documentación 
#1111 - Invalid use of group function

3 个答案:

答案 0 :(得分:1)

您正在尝试嵌套两个无法正常工作的聚合函数。而是使用以下两个查询之一:

SELECT *, MAX(mi_curso) maximo
FROM producto
GROUP BY mi_curso

SELECT *, COUNT(mi_curso) maximo
FROM producto
GROUP BY mi_curso

答案 1 :(得分:0)

你能尝试下面这个并发表评论吗?

SELECT id, COUNT(mi_curso) maximo FROM producto GROUP BY mi_curso having max(count(mi_curso))

编辑:根据Tim Biegeleisen的建议

SELECT id, COUNT(mi_curso) maximo FROM producto GROUP BY mi_curso having max(count(maximo))

答案 2 :(得分:0)

可能是群组中最常见的问题......

在选择列表中包含非聚合....

select *可能包含除mi_curso之外的一些列。 如果是这样,则该组不起作用。

您可以选择GROUP BY表达式中包含的聚合和列。

如果你这样做(例如)

select name, address, count(name)
from residences
group by name

当一个人拥有≥1个住所时,sql应该为地址提供什么价值?没办法知道。

有些sql提供了很好的清晰错误消息。有些人只是对你眨眼,好像你已经知道什么是错的。