MySQL 集計関数: なぜ GROUP BY 句が必要ないのですか?
MySQL では、集計関数は、付随する関数なしで SELECT リストで使用できます。 SQL Server などの他の RDBMS 製品とは異なり、GROUP BY 句を使用します。この動作は意図的なもので、標準に独自の拡張機能を提供します。
たとえば、クエリ「SELECT col1,col2,sum(col3) FROM tbl1;」正常に実行され、col1 とcol2 の最初の行の値とすべてのcol3 の値の合計を含む単一行が返されます。
説明
MySQL ではこの動作が許可されています。 GROUP BY 句がないと、すべての行が暗黙的にグループ化されると見なされます。したがって、テーブル全体または複数の行に適用される集計関数は、単一の暗黙的なグループで動作します。
以前の動作
MySQL バージョン 5.7.5 より前では、これは行動は何の制限も受けませんでした。ただし、SQL 標準への準拠を強化するために、新しいサーバー SQL モード ONLY_FULL_GROUP_BY が導入されました。このモードを有効にすると、すべての集約関数の使用に GROUP BY 句が必要になります。
結論
GROUP BY 句を使用しない MySQL の集約関数の独自の処理により、データの柔軟性が提供されます。検索。ただし、この動作を理解し、SQL 標準に準拠するために ONLY_FULL_GROUP_BY を有効にすることを検討することが重要です。
以上がMySQL が GROUP BY 句なしで集計関数を使用できるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。