Интересно, есть ли разумные способы переписать следующий запрос, чтобы он отображал 'MY_LOAD_STATUS' дважды в одной строке вместе с 'MY_LOAD_TIMESTAMP', чтобы я мог затем подсчитать реальное время выполнения загрузки, добавив еще один столбец, который будет вычесть MIN (MY_LOAD_TIMESTAMP) из MAX (MY_LOAD_TIMESTAMP)?
Мой текущий оператор выбора выглядит следующим образом:
SELECT MY_LOAD_DETAILS_ID,
MY_LOAD_ID,
MY_LOAD_SOURCE_SYSTEM,
CAST(CAST(MY_LOAD_TIMESTAMP AS CHAR(19)) AS TIMESTAMP(0)),
CAST(CAST(MY_LOAD_TIMESTAMP AS TIMESTAMP FORMAT 'dd/mm/yyyyBhh:mi:SS.s(6)') AS DATE) AS "START DATE",
CAST(CAST(MY_LOAD_TIMESTAMP AS TIMESTAMP FORMAT 'dd/mm/yyyyBhh:mi:SS.s(6)') AS TIME) AS "START TIME ",
MY_LOAD_STATUS,
MY_LOAD_WORKFLOW_NAME
FROM MY_PROD_DB.MY_LOAD_DETAILS
WHERE MY_LOAD_ID='869230'
order by MY_LOAD_DETAILS_ID DESC;
Вывод выглядит следующим образом:
MY_LOAD_DETAILS_ID MY_LOAD_ID MY_LOAD_SOURCE_SYSTEM MY_LOAD_TIMESTAMP START DATE START TIME MY_LOAD_STATUS MY_LOAD_WORKFLOW_NAME
5558 869230 SSS 2020-02-04 14:46:32 2020-02-04 14:46:32.000000 SUCCEEDED wf_RRR_LOAD_FROM_SSS
5557 869230 SSS 2020-02-04 14:44:03 2020-02-04 14:44:03.000000 STARTED wf_RRR_LOAD_FROM_SSS
I хотелось бы, чтобы это было примерно так:
MY_LOAD_ID MY_LOAD_SOURCE_SYSTEM MY_LOAD_TIMESTAMP (for Started) MY_LOAD_TIMESTAMP (for Succeeded) START DATE START TIME MY_LOAD_STATUS (for Started) MY_LOAD_STATUS (for Succeeded) MY_LOAD_WORKFLOW_NAME MY_LOAD_TIMESTAMP (for Succeeded)-MY_LOAD_TIMESTAMP (for Started)
Большое спасибо заранее!
Энди