2013-06-03 7 views
1
내가

PostgreSQL의 : 여러 행에 걸쳐 추출물 (획기적인 기능

은 다음 내 원시 데이터이므로)이 시간에 버전의 PostgreSQL 8.3 (선택의 여지를 사용하지하고

: 나는 종료 할 무엇

ID | From | To | Time 
01 | n/a | open | 06:56 
01 | open | pt1 | 07:56 
01 | pt1 | pt2 | 07:59 
01 | pt2 | pt3 | 08:36 
01 | pt3 | pt4 | 08:56 
01 | pt4 | close | 09:58 

에 달려있다 :

ID | Open_Time | Close_Time 
01 | 06:56  | 09:58 

나는 각 부분 사이의 시간 간격에 대한 상관 없어 나는 많은 ID 번호가 각이 이상이 부분적 간격입니다 수 있습니다 내가 SQL에 비교적 새로운 해요.. 그래서 나는 꽤 잃어 버렸다. 여기. 두 끝과 시작 행을 새로운보기에서 한 행으로 병합하는 방법에 대해 고민하고 있습니다.

+0

'from' 및'to' 열에 신경 써야합니까? 또는 각 시리즈가'열린'으로 시작하고'닫기 '로 끝날 것이라고 보장합니까? –

답변

0
select 
    id ID, 
    min(case rd.to when 'open' then "time" end) Open_Time, 
    min(case rd.to when 'close' then "time" end) Close_Time 
from raw_data rd 
group by id 
관련 문제