Maison > base de données > tutoriel mysql > Comment corriger l'erreur MySQL « Expression de la liste SELECT non incluse dans la clause GROUP BY » ?

Comment corriger l'erreur MySQL « Expression de la liste SELECT non incluse dans la clause GROUP BY » ?

Mary-Kate Olsen
Libérer: 2024-11-25 06:14:15
original
203 Les gens l'ont consulté

How to Fix the

Dépannage de l'erreur « L'expression de la liste SELECT n'est pas dans la clause GROUP BY »

L'erreur « L'expression de la liste SELECT n'est pas dans la clause GROUP BY et contient une colonne non agrégée » libelle'," est généralement rencontré lors de l'exécution d'une requête avec une colonne non agrégée dans la liste SELECT et la clause GROUP BY. Pour résoudre cette erreur, il est nécessaire de s'assurer que toutes les colonnes non agrégées sont incluses dans la clause GROUP BY ou sont agrégées à l'aide de fonctions telles que SUM(), AVG() ou COUNT().

Dans Dans ce cas précis, la requête tente de sélectionner des colonnes comprenant 'libelle', 'credit_initial', 'disponible_v' et 'montant'. Cependant, seul « libelle » est inclus dans la clause GROUP BY, tandis que « montant » n'est pas agrégé. Pour résoudre ce problème, modifiez la requête pour inclure 'montant' dans la clause GROUP BY ou l'agréger à l'aide de SUM() ou d'une autre fonction appropriée.

SOLUTION

Voici une version mise à jour de la requête qui inclut « montant » dans la clause GROUP BY :

SELECT libelle, credit_initial, disponible_v, SUM(montant) AS total_montant 
FROM fiche, annee, type 
WHERE type.id_type = annee.id_type 
AND annee.id_annee = fiche.id_annee 
AND annee = YEAR(current_timestamp) 
GROUP BY libelle, credit_initial, disponible_v 
ORDER BY libelle ASC
Copier après la connexion

Alternativement, la requête peut être ajustée pour agréger 'montant' à l'aide de SUM() :

SELECT libelle, credit_initial, disponible_v, SUM(montant) 
FROM fiche, annee, type 
WHERE type.id_type = annee.id_type 
AND annee.id_annee = fiche.id_annee 
AND annee = YEAR(current_timestamp) 
GROUP BY libelle 
ORDER BY libelle ASC
Copier après la connexion

En effectuant ces modifications, la requête sera conforme au mode GROUP BY strict de MySQL 5.7 et évitera l'erreur.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal