首页 > 解决方案 > 从另一列 SQL 填充数组

问题描述

我需要帮助我的代码(PostgreSQL)。

我进入我的行 Result{{2.0,10}{2.0,10}}但我想要{{2.0,10}{3.0,20}}. 我不知道我的错误在哪里。结果是文本[ ],它必须是二维数组

这是表1

编号 姓名 结果
01 凯文

这是表2

编号 考试 教授
01 2.0 10
01 3.0 20

我的代码是

update public."Table1" as t1
   set "Result" = ARRAY[[t2."Exam", t2."ProfNr"],[t2."Exam",t2."ProfNr"]]
from public."Table2" as t2 
where t1."Nummer"= 01
and t2."Nummer"=01;

标签: sqlarrayspostgresql

解决方案


您需要聚合行来实现这一点。这个 CTE 应该有助于澄清我的意思:

with buildarr as (
  select nummer, array_agg(array[exam, profnr]) result
    from table2
   group by nummer
)
update table1
   set result = buildarr.result
  from buildarr
 where buildarr.nummer = table1.nummer;

工作小提琴


推荐阅读