Fonction SQL "pas une fonction de groupe à groupe unique" expliquée
En SQL, lors de l'utilisation d'une fonction de groupe telle que MAX, la fonction doit être appliqué à un seul groupe de données. Cela signifie que si vous souhaitez trouver la valeur maximale pour une colonne spécifique, vous devez également regrouper les données par cette colonne.
Cependant, si vous essayez d'appliquer une fonction de groupe à une expression qui n'est pas groupée, vous recevrez l’erreur « pas une fonction de groupe à groupe unique ». Par exemple, disons que vous avez une table appelée téléchargements qui contient une colonne pour les téléchargements par un client :
SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN
Cette requête est valide car la fonction MAX est appliquée à un groupe de données (téléchargements par SSN) . Cependant, si vous essayez d'ajouter la colonne SSN à l'instruction select, comme ceci :
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN
Vous recevrez l'erreur « pas une fonction de groupe à groupe unique » car la colonne SSN n'est pas incluse dans la colonne SSN. Clause GROUPE PAR. Cela signifie que SQL ne peut pas déterminer à quel groupe de données appartient la colonne SSN et ne peut donc pas lui appliquer la fonction MAX.
Pour résoudre cette erreur, vous disposez de trois options :
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN, TIME
Cela vous donnera le temps total maximum téléchargé pour chaque SSN unique et combinaison de temps.
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!