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。我不太确定“在大多数情况下”是什么意思——可能您希望查询覆盖所有情况?--但是我已经根据我对你的意思的最佳猜测发布了一个答案。