ホームページ >データベース >mysql チュートリアル >SQL UPDATE ステートメントで集計関数を使用するにはどうすればよいですか?
SQL UPDATE クエリで集計関数を使用する方法
SQL では、多くの場合、別のテーブルから集計されたデータに基づいてテーブルの値を更新する必要があります。テーブル。ただし、標準の UPDATE クエリは、SUM や GROUP BY などの集計関数をサポートしていません。
これを解決するには、次の手順に従います。
例:
次のシナリオを考えてみましょう: table1 テーブルの field1 列を、table2 の各 field3 の field2 の値の合計で更新したいとします。 table.
不正な実装:
UPDATE table1 SET field1 = SUM(table2.field2) FROM table1 INNER JOIN table2 ON table1.field3 = table2.field3 GROUP BY table1.field3
SET 句では集計関数を使用できず、このコンテキストでは GROUP BY 句がサポートされていないため、このクエリは正しくありません。 .
正解実装:
これを正しく達成するには、サブクエリを使用して集計を計算し、それを更新のターゲット テーブルと結合します:
UPDATE t1 SET t1.field1 = t2.field2Sum FROM table1 t1 INNER JOIN (select field3, sum(field2) as field2Sum from table2 group by field3) as t2 on t2.field3 = t1.field3
このクエリは最初に、次のサブクエリを作成します。 table2 の各 field3 の field2 の合計を計算し、データを効果的に集計します。結果は一時テーブルに保存され、フィールド 3 列を結合条件として使用してテーブル 1 と結合されます。次に、table1 の field1 列が、対応する field2Sum 値で更新されます。
以上がSQL UPDATE ステートメントで集計関数を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。