集計関数を使用せずにSELECT句に追加した列は、GROUPBY句に含める必要があります。
少し明確にするために:
この例を見てください:
SELECT句にTransactionID、AccountID、TransactionAmount、TransactionDateがあり、すべての日付にSUM(TransactionAmount)が必要です。この場合、
SELECT TransactionDate, TransactionID, AccountID, SUM(TransactionAmount)
FROM Table
GROUP BY TransactionDate
次に、エラーが発生します。
20160101に4つのトランザクションがあり、各transactionAmountが$1000であると仮定します
結果の期待値は
TransDate TransAmt
20140101 4000
この場合、AccountIDやTransactionIDなどの他の属性をSELECT句に含めると、それらはどこに移動しますか?これが、AGGREGATE関数を使用する属性を除いて、SELECT句のすべての属性をGROUP句に含める必要がある理由です。