2012-01-19 3 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

@ruakh 대부분의 경우'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

관련 문제