это мой стол:
Event Time Order Mission TimeStamp
arrived 14:50 281475024521271 281475024568005 2017-08-09 14:50:59
nextDelivery 14:51 281475024521271 281475024568005 2017-08-09 14:51:33
arrived 15:27 281475024521271 281475024568005 2017-08-09 15:27:13
nextDelivery 15:28 281475024521271 281475024568005 2017-08-09 15:28:04
И это мой запрос:
with times as(
select
event,
to_char("timestamp"::timestamptz at time zone 'Europe/Rome', 'HH24:MI') as Time,
orders,
mission,
"timestamp"::timestamptz at time zone 'Europe/Rome' as TimeStamp
from main_source_execevent
where orders = '281475024521271'
and event in ('arrived', 'nextDelivery')
order by "timestamp"
)
select
case when event = 'arrived' then time end as TimeIN,
case when event = 'nextDelivery' then time end as TimeOUT,
orders
from Times
И результат запроса:
TimeIN TimeOut Order
14:50 NULL 281475024521271
NULL 14:51 281475024521271
15:27 NULL 281475024521271
NULL 15:28 281475024521271
То, чего я пытаюсь добиться, - это разместить timein и timeout в одном ряду для заказа.
Я не могу понять, как получить этот результат.
Вы можете мне помочь?
Желаемый результат:
TimeIN TimeOut Order
14:50 14:51 281475024521271
15:27 15:28 281475024521271
РЕДАКТИРОВАТЬ: ДОБАВЛЕННАЯ ИНФОРМАЦИЯ
Соединение должно быть с ближайшей отметкой времени между прибытием и следующей доставкой, поэтому может быть только одна пара тайм-аутов / тайм-аутов, как описано в желаемом результате.