sql - 从另一列 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;
解决方案
您需要聚合行来实现这一点。这个 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;
推荐阅读
- c - 如果后跟空格和左括号,C11 关键字“_Atomic”是否算作类型限定符或说明符?
- javascript - Vue SPA 中的视频无法在 iPhone 上自动播放/加载
- r - 将函数应用于来自不同列表的元素时出现问题
- excel - excel内置字典功能?
- java - 检查井字游戏获胜者,仅水平和垂直
- php - 如何将两个表连接在一起以创建 JSON | PHP
- c++ - 如何处理标头名称与标准库标头冲突,但不更改文件名?
- css - 标题选择器不响应 Rmarkdown html 报告的 css 中的字体大小规则
- vb.net - vb.net在datagridview上过滤日期
- here-api - 在更改窗口方向并调整大小后,此处地图不重新加载图块?