SQL Server - Colonne non valide “dans la liste de sélection, car il n'est pas contenue dans une fonction d'agrégation ou de la clause GROUP BY”
Je voudrais afficher la colonne B
dans mon sous SQL, mais quand je l'ajouter à la requête qu'il me donne l'erreur suivante:
Colonne T2.B'
n'est pas valide dans la liste de sélection, car il n'est pas contenue soit dans un
fonction d'agrégation ou de la clause GROUP BY.
Mon code:
SELECT A, COUNT(B) as T1, B
FROM T2
WHERE ID=1
GROUP BY A
- double possible de clause Group By causer d'erreur. Si vous avez effectué une recherche ici sur votre message d'erreur, vous pouvez trouver beaucoup de matches ici, qui aurait répondu à cela pour vous. S'il vous plaît au moins faire l'effort de le faire, ainsi qu'à la lecture du message d'erreur, qui ne décrit pas seulement le problème exact, mais qui vous dit exactement la colonne qui est à l'origine.
- Double Possible de la Raison pour la Colonne n'est pas valide dans la liste de sélection, car il n'est pas contenue dans une fonction d'agrégation ou de la clause GROUP BY
Vous devez vous connecter pour publier un commentaire.
En d'autres termes, cette erreur est vous dire que SQL Server ne sait pas qui
B
pour sélectionner le groupe.Vous souhaitez sélectionner une valeur spécifique (par exemple, la
MIN
,SUM
, ouAVG
), dans ce cas, vous utilisez la fonction d'agrégation appropriée, ou vous souhaitez sélectionner chaque valeur en tant que nouvelle ligne (c'est à dire y comprisB
dans leGROUP BY
liste de champs).Considérons les données suivantes:
La requête
serait de retour:
qui est bien et bon.
Toutefois de considérer les éléments suivants (illégale) de la requête, ce qui permettrait de produire cette erreur:
Et son retourné ensemble de données illustrant le problème:
Cependant, les deux requêtes suivantes clair, et ne sera pas la cause de l'erreur:
À l'aide d'un agrégat
serait de retour:
L'ajout de la colonne à la
GROUP BY
listeserait de retour:
La conséquence de cela est que vous pouvez avoir besoin d'un plutôt fou-la recherche de la requête, de l'e. g.,
Depuis la primaire de la table est un tableau récapitulatif, sa clé primaire gère le seul groupement ou de la commande qui est vraiment nécessaire. Par conséquent, la clause GROUP BY n'existe que pour satisfaire à la requête de l'analyseur.
Vous pouvez utiliser en cas de mise à jour et de SWAP que de nombreux que vous le souhaitez