ホームページ >データベース >mysql チュートリアル >SQL の PARTITION BY と GROUP BY: 違いは何ですか?
SQL の PARTITION BY と GROUP BY の違いを理解する
パーティション化とグループ化は、データの集計と処理のための SQL の重要な操作です。 PARTITION BY と GROUP BY はどちらもデータの分割と集計を伴いますが、機能と用途が大きく異なります。
PARTITION BY: ウィンドウ関数の分割
PARTITION BY は主に、定義されたパーティションに基づいて計算を実行する ROW_NUMBER() などのウィンドウ関数と組み合わせて使用されます。パーティション キーと呼ばれる、指定された列に基づいてデータを個別のグループに分割します。各パーティションは独立して動作するため、ウィンドウ関数はそれぞれのパーティションに関連する値を計算できます。
たとえば、次のクエリでは PARTITION BY を使用して、各顧客 ID 内の行に連続番号を割り当てます。
SELECT ROW_NUMBER() OVER (PARTITION BY customerId ORDER BY orderId) AS OrderNumberForThisCustomer FROM Orders;
GROUP BY: データをグループに集約
GROUP BY、一方、 は、共通の値に基づいて複数の行にわたるデータを集計するように設計されています。これは、グループ化キーと呼ばれる、指定された列内の値が一致する行をグループ化します。次に、COUNT(*) や SUM() などの集計関数が各グループに適用されます。
次のクエリは、GROUP BY を使用して各顧客の合計注文数を計算します。
SELECT customerId, COUNT(*) AS orderCount FROM Orders GROUP BY customerId;
主な違い
PARTITION BY と PARTITION BY の主な違いGROUP BY は次のように要約できます:
以上がSQL の PARTITION BY と GROUP BY: 違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。