MySQL の柔軟な「GROUP BY」句: 詳細
Oracle や SQL Server のようなデータベース システムとは異なり、MySQL は GROUP BY
句に対してより寛大なアプローチを提供し、集計関数なしでクエリを実行できます。この柔軟性は、ANSI SQL 標準から逸脱していますが、パフォーマンス上の利点とユーザーの利便性の向上の両方を提供します。
集計を使用しない MySQL の GROUP BY
の処理
SELECT X, Y FROM someTable GROUP BY X
などのクエリでは、MySQL は各 Y
グループに関連付けられた X
の任意の値を選択します。この動作は、集計関数のない Y
や GROUP BY
自体の Y
句は不要であるという MySQL の解釈に基づいています。
MySQL の設計選択の背後にある理由
このタイプの クエリを許可するという MySQL の決定は、次の 2 つの重要な要素によって決まります。GROUP BY
ANSI SQL 準拠と MySQL の正当性
MySQL の動作は厳密な ANSI SQL 標準 (集計関数またはすべての非集計カラムによるグループ化を義務付ける) とは異なりますが、MySQL 開発者はパフォーマンスとユーザーの使いやすさを優先することでこの逸脱を正当化しています。 多くの実際的なシナリオでは、潜在的なパフォーマンスの向上と一般的なクエリの簡素化が、厳格な標準への非準拠を上回ります。以上がMySQL ではなぜ集計関数を使用せずに GROUP BY 句を使用できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。