gpt4 book ai didi

sql - 我怎样才能让这条SQL更新语句更有效率呢?

转载 作者:行者123 更新时间:2023-11-29 12:31:40 25 4
gpt4 key购买 nike

我正在尝试将一个表中的计数、总和和平均值添加到另一个表中,但我最终为每个值查询了相同的数据。我正在使用 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";

非常感谢任何帮助。

最佳答案

尝试子查询:

UPDATE table1 
SET col1 = YourCount, col2 = YourAverage, col3 = YourSum
FROM table1 t1
INNER JOIN (
SELECT table2Id, COUNT(*) AS YourCount, AVG(someCol1) YourAverage,
SUM(someCol2) YourSum
FROM table2
GROUP BY table2Id
) t2 ON t1.table1Id = t2.table2Id

关于sql - 我怎样才能让这条SQL更新语句更有效率呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11526571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com