У меня есть таблица состояния событий, структура таблицы уже определена, я хотел бы сделать несколько значений строки в одной строке.
текущие данные таблицы:
eventable:
EVENT EVENTNAME EVENTACTION STATUS TIMESTAMP
"Event1" "FootBall" "FootBall0" "started" "1554980085"
"Event1" "TableTennis" "TT0" "started" "1554980086"
"Event1" "FootBall" "FootBall0" "success" "1554980087"
"Event1" "Chess" "CHESS0" "success" "1554980095"
"Event1" "TableTennis" "TT0" "running" "1554980189"
"Event1" "FootBall" "FootBall1" "started" "1554980082"
Мне нужно выбрать запрос для отображения данных следующим образом:
EVENT EVENTNAME EVENTACTION STATUS STARTTIME RUNNINGTIME ENDTIME
"Event1" "FootBall" "FootBall0" "success" 1554980085 NULL 1554980087
"Event1" "TableTennis" "TT0" "running" 1554980086 1554980189 NULL
"Event1" "Chess" "CHESS0" "success" 1554980098 NULL 1554980100
Мне нужно показать EVENT
, EVENTNAME
, EVENTACTION
и самую последнюю STATUS
и отметку времениstarted
, running
и success
, если время отсутствует, следует установить NULL
.
Я использовал запрос SELECT с регистром, но метки времени не помещаются в одну соответствующую строку.
SELECT AE.EVENT,
AE.EVENTNAME,
AE.EVENTACTION,
AE.STATUS,
(case WHEN AE.STATUS='started' THEN AE.timestamp END) as starttime,
(case WHEN AE.STATUS='running' THEN AE.timestamp END) as runningtime,
(case WHEN AE.STATUS in ('success','failed') THEN AE.timestamp END) as endtime
FROM agentEvents AE
ORDER by timestamp ASC
Любые выводы.