[英]Combining multiple rows in postgreSQL into one row?
我是postgreSQL的新手。 我的目标是运行一个查询,该查询返回为每个proposal_id列出的所有item_id,其中每个唯一的proposal_id是一个单独的行条目,每个item_id是该行条目中的一列。
表1数据如下所示:
proposal_id item_id
1 83054
1 81048
2 71384
2 24282
2 19847
2 18482
3 84720
4 18081
4 73018
这就是我想要它的样子:
proposal_id item_id_1 item_id_2 item_id_3 item_id_4 item_id_n
1 83054 81048
2 71384 24282 19847 18482
3 84720
4 18081 73018
挑战在于我可以在1到11个或更多条目之间拥有相同的proposal_id。
这是一个简化版本,用于提出这个问题。 一旦我确定了这一点,我的计划就是为这里的其他表格中的每个item_id和proposal_id加入其他数据。
任何帮助非常感谢。
谢谢!
编辑:固定表美学
首先,确定您需要的列数:
select proposal_id, array_length(array_agg(item_id), 1)
from the_table
group by 1
order by 2 desc
limit 1
接下来,使用足够数量的a执行以下查询。
select proposal_id, a[1] id1, a[2] id2, a[3] id3, a[4] id4
from (
select proposal_id, array_agg(item_id) a
from the_table
group by 1
order by 1) z
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.