Erreur de requête SQL : la colonne n'est pas valide dans la liste SELECT car elle n'est pas conforme à une fonction d'agrégation ou à une clause GROUP BY
Lors de l'exécution d'une requête SQL, vous pouvez rencontrer l'erreur suivante :
<code>Column 'Column_Name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.</code>
La raison de cette erreur est la suivante :
Regroupement de données
Dans la clause GROUP BY, les lignes avec la même valeur de colonne sont spécifiées pour être regroupées. Par exemple, dans la requête suivante :
<code>SELECT loc.LocationID, emp.EmpID FROM Employee AS emp FULL JOIN Location AS loc ON emp.LocationID = loc.LocationID GROUP BY loc.LocationID</code>
Les employés sont regroupés par leur LocationID. Cependant, si vous essayez d'inclure une colonne dans la liste SELECT qui ne figure pas dans la clause GROUP BY (par exemple, emp.EmpID), vous obtiendrez cette erreur car il est impossible de déterminer quel EmpID doit être sélectionnée pour chaque valeur de groupe.
Fonction d'agrégation
Les fonctions d'agrégation telles que SUM, COUNT, MAX et MIN) peuvent être utilisées pour obtenir des informations récapitulatives sur les données groupées. . Si vous incluez une colonne non agrégée dans la liste SELECT mais qu'elle ne fait pas partie d'une clause GROUP BY, vous devez utiliser une fonction d'agrégation dessus.
Par exemple, si vous souhaitez calculer le nombre d'employés par site, vous utiliserez :
<code>SELECT loc.LocationID, COUNT(emp.EmpID) FROM Employee AS emp FULL JOIN Location AS loc ON emp.LocationID = loc.LocationID GROUP BY loc.LocationID</code>
Cela garantit que pour chaque emplacement, seul un nombre d'employés est renvoyé, plutôt qu'une liste d'identifiants d'employés individuels.
Solution
Pour résoudre cette erreur vous devez :
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!