ホームページ >データベース >mysql チュートリアル >SQL UPDATE ステートメントで集計関数を使用するにはどうすればよいですか?

SQL UPDATE ステートメントで集計関数を使用するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-25 00:17:08860ブラウズ

How Can I Use Aggregate Functions in SQL UPDATE Statements?

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

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