1

我用的是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

我不在乎各个部分之间的时间间隔。我有很多身份证号码,每个身份证号码都可以有这个或更多的部分间隔。我对 sql 很陌生,所以我在这里很迷茫。我被困在如何在新视图中将两端和开始行合并为一行。

4

1 回答 1

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
于 2013-06-03T16:24:31.587 回答