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
のコントラクトに違反している場合 ?