2012-01-19 6 views
0

重複がある場合は、私にそれを指摘してください。このような状況を検索するためにどのようなキーワードを使用するのか分かりません。
私はこのテーブルを持っている:PostgreSQLは2行を1行に結合します

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でこれをどうやって行うのですか?

+0

が '値の固定数を取るread'ない、または目的のクエリは、潜在的に任意の数の列を返すことができますか? – ruakh

+0

ほとんどの場合、 'read'は1から2に変わります。 – BPm

+1

「ほとんどの場合」の意味を100%確信しているわけではありません。おそらくすべてのケースをカバーするクエリが必要でしょうか? - しかし、私はあなたが意味するものを私の最高の推測に基づいて答えを掲示しました。 – ruakh

答えて

1

あなたは自分自身に、テーブルを結合することができます。

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 
; 
+0

のように見えます!どうもありがとう!! – BPm

+0

@BPm:どうぞよろしく! – ruakh

関連する問題