あるテーブルから別のテーブルにカウント、合計、および平均の値を追加しようとしていますが、値ごとに同じデータをクエリすることになります。私はPostgreSQLを使用しています。私はこれを専門家に引き渡して、この更新ステートメントをより効率的にする方法を学びます。ここにあります:
update "table1" set
"col1" = (SELECT COUNT(*) FROM "table2" WHERE "table2Id" = "table1"."table1Id"),
"col2" = (SELECT AVG("someCol") FROM "table2" WHERE "table2Id" = "table1"."table1Id"),
"col3" = (SELECT SUM("someCol") FROM "table2" WHERE "table2Id" = "table1"."table1Id");
このようなサブクエリを一度実行して、更新の戻り値にアクセスできるはずですよね?
SELECT COUNT(*), AVG("someCol"), SUM("someCol") FROM "table2" WHERE "table2Id" = "table1"."table1Id";
どんな助けでも大歓迎です。