Les colonnes que vous avez ajoutées dans la clause SELECT sans fonction d'agrégat doivent se trouver dans la clause GROUP BY.
Pour clarifier un peu :
Prenez cet exemple :
Vous avez TransactionID, AccountID, TransactionAmount, TransactionDate dans votre clause SELECT, et vous avez besoin de SUM(TransactionAmount) à toutes les dates, dans ce cas, si vous ajoutez
SELECT TransactionDate, TransactionID, AccountID, SUM(TransactionAmount)
FROM Table
GROUP BY TransactionDate
Ensuite, vous obtiendrez une erreur, pourquoi parce que
Supposons que vous avez 4 transactions sur 20160101 et que chaque transactionAmount est de 1000 $
Votre attente de résultat sera
TransDate TransAmt
20140101 4000
Dans ce cas, si vous apportez d'autres attributs dans la clause SELECT comme AccountID et TransactionID, où iront-ils ? C'est pourquoi nous devons inclure tous les attributs dans la clause GROUP quoi que ce soit dans la clause SELECT sauf celui qui est avec la fonction AGGREGATE.