PostgreSQL将2行合并为1行
如果有副本,请给我指一下。我不知道用什么关键字来搜索这种情况。PostgreSQL将2行合并为1行,postgresql,join,Postgresql,Join,如果有副本,请给我指一下。我不知道用什么关键字来搜索这种情况。 我有这张桌子: name | read | sum1 | sum2 --------+-------+-------+----- A | 1 | 2.0 | 1.3 A | 2 | 0.4 | 4 B | 1 | 0.2 | 0.1 B | 2 | 1.0 | 3.3 我想要的是: name | r1_sum1 |
我有这张桌子:
name | read | sum1 | sum2
--------+-------+-------+-----
A | 1 | 2.0 | 1.3
A | 2 | 0.4 | 4
B | 1 | 0.2 | 0.1
B | 2 | 1.0 | 3.3
我想要的是:
name | r1_sum1 | r1_sum2 | r2_sum1 | r2_sum2
--------+---------+----------+---------+--------
A | 2.0 | 1.3 | 0.4 | 4
B | 0.2 | 0.1 | 1.0 | 3.3
因此,这就像是按
read
和name
列对行进行分组一样。如何在psql中实现这一点 您可以将表连接到自身:
SELECT t1.name AS name,
t1.sum1 AS r1_sum1,
t1.sum2 AS r1_sum2,
t2.sum1 AS r2_sum1,
t2.sum2 AS r2_sum2
FROM insert_table_name_here AS t1
FULL
OUTER
JOIN insert_table_name_here AS t2
ON t1.name = t2.name
AND t1.read = 1
AND t2.read = 2
;
read
是否接受固定数量的值,或者所需的查询可能会返回任意多个列?@ruakh在大多数情况下,read
会从1变为2。我不太确定“在大多数情况下”是什么意思——可能您希望查询覆盖所有情况?--但是我已经根据我对你的意思的最佳猜测发布了一个答案。