gpt4 book ai didi

Postgresql - 行到列

转载 作者:行者123 更新时间:2023-11-29 12:44:34 24 4
gpt4 key购买 nike

我有一个表,其中有如下记录,2 列,col1id 和 col1:

AA1       TextAA1
AA2 TextAA2
AA3 TextAA3
AB1 TextAB1
AC1 TextAC1
BA1 TextBA1
BA2 TextBA2
BA3 TextBA3
BB1 TextBB1
BC1 TextBC1
CA1 TextCA1
CA2 TextCA2
CA3 TextCA3
CB1 TextCB1
CC1 TextCC1

我需要为输出制作一个这样的表:

TextAA1, TextAA2, TextAA3
TextBA1, TextBA2, TextBA3
TextCA1, TextCA2, TextCA3

除了记录被分组为 AA1-3、BA1-3 等之外,没有什么可以将这些记录联系在一起。其他记录?B?和?C?可以忽略。

我查看了各种答案,包括交叉表(已安装),并尝试使用连接进行查询但无济于事。

这是我尝试过的一个示例:

SELECT col1 as a1, row_number() OVER(ORDER BY col1id ASC) as a2
FROM table01
WHERE col1id LIKE '_A_'
JOIN (
SELECT col2 as c1, row_number() OVER(ORDER BY col1id ASC) as c2
FROM table01
WHERE col1id LIKE '_A_') ON a2 = c2

但我无法克服 JOIN 错误。

我该怎么做?提前致谢,

最佳答案

使用 array_agg()col1id 的首字母分组聚合 col1 值:

select arr[1] as a1, arr[2] as a2, arr[3] as a3
from (
select array_agg(col1 order by col1id) as arr
from table01
where col1id like '_A_'
group by left(col1id, 1) -- first letter of col1id
order by 1
) sub

关于Postgresql - 行到列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31683786/

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