ホームページ  >  記事  >  データベース  >  MySQL で GROUP BY を使用せずに集計関数を使用できるのはなぜですか?

MySQL で GROUP BY を使用せずに集計関数を使用できるのはなぜですか?

DDD
DDDオリジナル
2024-11-06 11:07:02843ブラウズ

Why Can I Use Aggregate Functions Without GROUP BY in MySQL?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。