【发布时间】:2021-11-23 07:27:25
【问题描述】:
我有一个表,对于相同的 ID,我有不同的信息。例如。
| ID | Activity |
|---|---|
| 1 | 12 |
| 1 | 15 |
| 2 | 15 |
| 3 | 20 |
我想更新“活动”字段,将每个 id 的所有不同活动值合并为一行。
当我使用以下代码进行选择时,我想要的是:
SELECT string_agg(id_epigrafe, ', ') AS epigrafe_list
FROM febrero20_2
GROUP BY id_local;
结果是:
但是,当我想在我的更新查询 posgresql(版本 13)中引入该查询时,会出现以下错误:错误:用作表达式的子查询返回的不止一行。 我用来尝试更新字段的代码是:
UPDATE febrero20_2
SET id_epigrafe = (SELECT string_agg(id_epigrafe, ', ') AS epigrafe_list
FROM febrero20_2
GROUP BY id_local);
我尝试创建一个新表,在这种情况下,我可以使用以下代码正确完成:
CREATE TABLE febrero20_3
AS
SELECT id_local, string_agg(id_epigrafe, ', ') AS epigrafe_list
FROM febrero20
GROUP BY id_local
ORDER BY id_local;
谁能帮我理解为什么会出现这个错误?我是 posgresql 的新手,因此,如果这只是一些简单的错误,我很抱歉,但我找不到任何答案
【问题讨论】:
标签: sql postgresql sql-update