2015-11-25 1 views
0

J'ai essayé de le faire sur php, en lisant à partir d'une table DB dans mysql, mais je ne comprends pas quelle est l'erreur là-dessus. quelqu'un peut-il m'aider s'il vous plaît? la table comme une colonne qui contient des nombres (ce nombre représentent un cours: P)utilisation invalide du groupe

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

et ceci est l'erreur affichée:

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

désolé, la dernière partie est MySQL ha dicho: # 1111 - Utilisation invalide de la fonction de groupe –

+3

Mettez à jour votre question avec l'entrée d'échantillon et la sortie désirée. À l'heure actuelle, la question est vague. –

Répondre

0

pourrait vous essayez si cela a fonctionné suivant et commenter?

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

edit: comme suggéré par Tim Biegeleisen

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

N'est-ce pas encore deux fonctions d'agrégation? –

+0

n'a pas vu cela, merci @TimBiegeleisen – davejal

+0

Je pense que c'est juste pour compter combien de fois un nombre se répète dans la colonne, non? le second est juste prendre la valeur maximun sans faire le compte –

1

Vous essayez d'imbriquer deux fonctions globales, ce qui ne fonctionne pas. Au lieu de cela, utilisez l'une des deux requêtes suivantes:

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

ou

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

Note: Je vais mettre à jour/changer ma réponse si @Jeferson nous dit ce qu'il veut réellement. –

0

Que diriez-vous probablement le problème le plus commun avec le groupe par ....

y compris les non-agrégats dans la sélection liste ....

select * contient probablement une autre colonne que mi_curso. Si tel est le cas, ce groupe ne fonctionne pas.

Vous pouvez sélectionner des agrégats et des colonnes inclus dans l'expression GROUP BY.

Si vous faites (par exemple)

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

Quelle valeur doit sql fournir pour adresse quand une personne a> 1 résidences? Pas moyen de le savoir.

Certains sql donnent de beaux messages d'erreur. Certains vous font un clin d'œil, comme si vous saviez déjà ce qui ne va pas.