gpt4 book ai didi

postgresql - 如何修复 "ERROR: aggregate functions are not allowed in UPDATE"

转载 作者:行者123 更新时间:2023-12-03 15:49:13 24 4
gpt4 key购买 nike

我正在尝试根据一些条件使用计算来更新列。

我使用的理论如下:
如果column1包含“字符串”,则将“column2和column3的计算”放入column4。

计算有效,但是我正在努力寻找一种使用这些IF条件和SUM更新列的方法。

我搜索了堆栈和postgres文档。我看到有许多汇总错误,但没有一个可以专门解决此问题。

UPDATE table1
SET "column4" = CASE
WHEN "column1" ILIKE '%Y%' THEN SUM(CAST("column2" AS
numeric(4,2))) / SUM(CAST("column3" AS numeric(4,2)))
END;

我得到的错误如下;

错误:UPDATE中不允许使用聚合函数
第7行:当“column1”类似'%Y%'时(SUM(CAST(“...

最佳答案

在通用表表达式中进行计算:

    WITH cte_avg AS (
SELECT SUM(CAST("column2" AS numeric(4,2))) / SUM(CAST("column3" AS numeric(4,2))) AS avg
FROM table1
)
UPDATE table1
SET "column4" = cte_avg.avg
FROM cte_avg
WHERE "column1" LIKE '%Y%'

关于postgresql - 如何修复 "ERROR: aggregate functions are not allowed in UPDATE",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56670842/

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