Maison  >  Article  >  base de données  >  Comment corriger l'erreur MySQL 1111 : utilisation non valide de la fonction de groupe lors du regroupement par colonne ?

Comment corriger l'erreur MySQL 1111 : utilisation non valide de la fonction de groupe lors du regroupement par colonne ?

DDD
DDDoriginal
2024-10-24 12:15:01808parcourir

How to Fix MySQL Error 1111: Invalid Use of Group Function When Grouping By a Column?

Résolution de l'erreur MySQL 1111 : utilisation non valide de la fonction de groupe

Lors de l'utilisation de MySQL, vous pouvez rencontrer l'erreur « Erreur 1111 (HY000) : Utilisation non valide de la fonction de groupe" lors de la tentative d'agrégation de données à l'aide d'une fonction de groupe telle que COUNT(*) tout en regroupant simultanément par colonne.

Pour résoudre cette erreur, évitez d'utiliser des fonctions de groupe dans la clause SELECT lors de l'exécution d'une Opération GROUPE PAR. Utilisez plutôt une sous-requête ou la clause ORDER BY pour récupérer la valeur maximale souhaitée.

Considérez l'exemple suivant :

<code class="mysql">SELECT
    name,
    MAX(COUNT(*)) AS max_count
FROM table
GROUP BY name;</code>

Cette requête renverra une erreur car COUNT() est utilisé dans la clause SELECT tout en regroupant également par nom. Pour résoudre ce problème, supprimez COUNT() de la clause SELECT et utilisez-la comme sous-requête dans la fonction MAX :

<code class="mysql">SELECT
    MAX((SELECT COUNT(*) FROM table WHERE name = t.name)) AS max_count
FROM table t
GROUP BY name;</code>

Après avoir exécuté cette requête, vous obtiendrez le nombre maximum d'enregistrements pour chaque nom dans le tableau. Alternativement, vous pouvez utiliser la clause ORDER BY pour trier les résultats par nombre, puis récupérer uniquement le premier enregistrement :

<code class="mysql">SELECT
    name,
    COUNT(*) AS count
FROM table
GROUP BY name
ORDER BY count DESC
LIMIT 1;</code>

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!

Déclaration:
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