我正在使用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很新,所以我在这里很丢失。我坚持如何在新视图中将两端和开始行合并为一行。
答案 0 :(得分: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