将PostgreSQL中的多行合并为一行?

尼克·拉辛斯基

我是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

SQLFiddle

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PostgreSQL选择查询“将多行合并为一行”

来自分类Dev

将多行合并为一行

来自分类Dev

将多行合并为一行

来自分类Dev

将多行合并为一行

来自分类Dev

将多行合并为一行

来自分类Dev

将多行合并为一行

来自分类Dev

尝试将表中的多行合并为一行

来自分类Dev

将多行合并为一行MySQL

来自分类Dev

将多行记录合并为一行

来自分类Dev

SQL:将多行与空字段合并为一行

来自分类Dev

将多行MYSQL合并为一行

来自分类Dev

将多行合并为一行 - mysql

来自分类Dev

Unix命令将多行合并为一行

来自分类Dev

Crystal Reports -- 将多行合并为一行

来自分类Dev

将多行合并为一行以替换列中的空值

来自分类Dev

使用python熊猫将csv文件中的多行合并为一行

来自分类Dev

根据熊猫中的列值将多行合并为一行

来自分类Dev

如何将 4 个表中的多行合并为 SQL 中新表中的一行?

来自分类Dev

SQL将一张表的多行合并为多列的一行

来自分类Dev

ACCESS / SQL将多行与一列合并为一行并创建多列

来自分类Dev

使用一个公共字段将多行合并为一行

来自分类Dev

使用SQL时将多行合并为一行(一列)

来自分类Dev

需要 oracle 查询将多行合并为一行,每行一列

来自分类Dev

将多行合并为一行一列 Python

来自分类Dev

将具有相同ID的多行合并为一行

来自分类Dev

MySQL根据匹配日期将多行合并为一行

来自分类Dev

大熊猫将多行合并为有条件的一行

来自分类Dev

将多行电话数据合并为显示开始和结束日期的一行的脚本

来自分类Dev

将具有不同日期/变量的多行合并为一行