SELECTのすべての列を配置する必要があります GROUP BYで または、結果を単一の値に圧縮する関数(MINなど)を使用します。 、MAX またはSUM 。
これが発生する理由を理解するための簡単な例:次のようなデータベースがあるとします。
FOO BAR
0 A
0 B
SELECT * FROM table GROUP BY fooを実行します 。これは、データベースが最初の列0の結果として単一の行を返す必要があることを意味します GROUP BYを満たすため ただし、barには2つの値があります から選択します。どの結果を期待しますか-A またはB ?または、データベースが複数の行を返し、GROUP BYのコントラクトに違反している場合 ?