Maison > base de données > tutoriel mysql > Pourquoi est-ce que j'obtiens l'erreur MySQL 1111 : utilisation non valide de la fonction de groupe ?

Pourquoi est-ce que j'obtiens l'erreur MySQL 1111 : utilisation non valide de la fonction de groupe ?

Linda Hamilton
Libérer: 2024-12-31 10:42:16
original
496 Les gens l'ont consulté

Why Am I Getting MySQL Error 1111: Invalid Use of Group Function?

L'erreur perplexe 1111 : utilisation non valide de la fonction de groupe

Ce problème survient lorsque vous tentez d'utiliser une fonction d'agrégation, telle qu'AVG, dans la clause WHERE, entraînant l'erreur énigmatique 1111 (HY000).

Comprendre l'essentiel du problème

SQL dicte que les fonctions d'agrégation ne peuvent pas résider dans la clause WHERE à moins qu'elles ne soient encapsulées dans une sous-requête contenue dans une clause HAVING ou une liste de sélection. De plus, la colonne soumise à l'opération d'agrégation doit être référencée à partir d'un contexte externe.

Résoudre l'erreur avec la clause WHERE

Une façon de rectifier cette erreur consiste à employer une sous-requête dans la clause WHERE, comme illustré ci-dessous :

select *
from staff
where salary > (select avg(salary) from staff)
Copier après la connexion

Dans ce cas, le salaire moyen est calculé à l'aide de la sous-requête et puis comparé au salaire de chaque individu.

Résoudre l'erreur avec la clause HAVING

Alternativement, la clause HAVING peut être exploitée pour établir une condition de recherche pour un groupe ou un agrégat, comme illustré ici :

select deptid,COUNT(*) as TotalCount
from staff
group by deptid
having count(*) > 2
Copier après la connexion

La clause HAVING précise que seuls les groupes de plus de deux membres seront renvoyés sous forme de résultat.

Commentaire supplémentaire sur la clause HAVING

Il convient de noter que la clause HAVING est généralement utilisée en conjonction avec la clause GROUP BY. Cependant, lorsque GROUP BY est absent, HAVING se comporte de la même manière qu'une clause WHERE.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal