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!