Maison >base de données >tutoriel mysql >Pourquoi ma requête SQL génère-t-elle une erreur « Pas une fonction de groupe à groupe unique » ?
Comprendre l'erreur « Pas une fonction de groupe à groupe unique » dans SQL
En SQL, une fonction de groupe à groupe unique, telle que MAX(), SUM() ou AVG() est appliqué à un groupe de lignes ayant les mêmes valeurs dans les colonnes de regroupement spécifiées. Cependant, si vous essayez d'inclure des expressions de colonne individuelles dans la liste SELECT avec une fonction de groupe et que vous n'incluez pas toutes ces expressions dans la clause GROUP BY, vous rencontrerez l'erreur « pas une fonction de groupe à groupe unique ».
Explication du problème
Dans l'exemple d'instruction SQL que vous avez fourni :
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN
la requête tente de calculer le maximum valeur de la somme de TIME pour chaque SSN unique, puis renvoie le SSN associé à cette valeur maximale. Cependant, cette requête présente un problème fondamental :
Résolution
Pour résoudre cette erreur, vous disposez de trois options :
Exemple de requête utilisant l'option 2
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN, TIME
Cette requête regroupera les résultats par SSN et TIME, vous permettant de récupérer le SSN associé à la somme maximale de TIME pour chaque SSN.
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!