GROUP BY を使用しない集計関数の MySQL 独自の処理
MySQL では、他のリレーショナル データベース管理システムとは異なり、集計関数を使用できます。 GROUP BY 句を指定せずに SELECT リストに含めます。この動作は、より制限の厳しい DBMS プラットフォームに慣れている開発者の間で疑問を引き起こしました。
MySQL の理論的根拠
MySQL は、SQL の貴重な拡張機能であると考え、設計によりこの柔軟性を許可しています。標準。 GROUP BY を使用せずに集計関数を使用すると、返される結果は、テーブル全体で計算された集計値を含む 1 つの行を表します。これは、グループ化を必要とせずに概要情報が必要なシナリオで役立ちます。
例
たとえば、クエリ:
SELECT col1, col2, SUM(col3) FROM tbl1;
GROUP BY がない場合、MySQL はこれを単一のグループとして解釈し、次の出力を提供します:
col1 col2 SUM(col3) ------------------------- (First row value of col1) (First row value of col2) (Sum of all col3 values)
ONLY_FULL_GROUP_BY の制限
集計処理に対する MySQL の寛大なアプローチGROUP BY を持たない関数は、ONLY_FULL_GROUP_BY が OFF に設定されて導入されました。 MySQL バージョン 5.7.5 のリリースでは、ONLY_FULL_GROUP_BY がデフォルトで有効になり、この動作が制限されます。
ONLY_FULL_GROUP_BY を有効にすると、集計関数は GROUP BY 句と組み合わせてのみ使用できるようになり、次の場合にはエラーが発生します。これを持たないクエリが検出されました。この変更は SQL 標準に準拠し、データの一貫性を促進します。
以上がMySQL で GROUP BY を使用せずに集計関数を使用できるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。