P粉1558329412023-08-24 13:38:21
ONLY_FULL_GROUP_BY
サーバー モードを無効に設定すると (デフォルトでは )、クエリは MYSQL
で実行されます。ただし、この場合は別の RDBMS を使用しています。したがって、クエリを機能させるには、 のように、すべての非集計列 を GROUP BY
句に追加します。
リーリー
SUM、
MAX、
COUNT などの集計関数に渡されないことを意味します。
P粉0900872282023-08-24 10:30:14
次のテーブルがあるとしますT
:
次のクエリを実行します:
リーリー出力には 2 行があり、1 行目は a=1
で、2 行目は a=2
です。
しかし、b の値はこれら 2 行に何を表示すればよいでしょうか?それぞれの場合に 3 つの可能性があり、クエリには各グループの b にどの値を選択するかを明確にするものはありません。意味は非常に曖昧です。
これは、GROUP BY クエリを実行し、グループ化の一部ではなく集計関数に表示されない列条件を選択リストに含めるときに、未定義の結果を取得することを禁止する 単一値ルール を示しています。 (合計、最小、最大など)。
これを修正すると次のようになります:
リーリーこれで、次の結果が必要であることは明らかです:
リーリー