我一直在尝试在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
答案 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提供了很好的清晰错误消息。有些人只是对你眨眼,好像你已经知道什么是错的。