繁体   English   中英

Postgres查询将具有相同列值的多行组合成一行

[英]Postgres query to combine multiple rows with same value of a column into a single row

我有这张桌子:

在此处输入图像描述

并希望将其转换为以下内容:

在此处输入图像描述

请帮助我,卡在它上面太久了。 使用 group by 对我不起作用

WITH A as (SELECT id, a FROM XXX WHERE a is not null),
     B as (SELECT id, b FROM XXX WHERE b is not null)
SELECT A.a, B.b, A.id FROM A 
     INNER JOIN B on A.id = B.id;

对于这个数据集,简单的聚合可以做你想做的事:

select min(a) a, min(b) b, id
from mytable
group by id

这利用了聚合函数忽略null值的事实; 我们可以使用max()获得与使用min()完全相同的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM