У меня есть следующая база данных Oracle. Определенный идентификатор может иметь принятый статус, но может оставаться в состоянии отказа и возвращаться в принятом статусе. Это может произойти время X, так что его можно назвать цикломSQL: возраст самых старых предметов
ID STATUS TIME INSERT
------------------------------
1 Accepted 01:00:00
1 Failed 02:00:00
1 Accepted 02:30:00
2 Accepted 02:33:00
Я хочу, чтобы вычислить возраст самого старого элемента с принятым статусом. Это означает, что результат SYSDATE - TIME ВСТАВКУ
Как результат этих данных я ожидаю, что 3d значения времени записи, 2:30:00
мне нужно проверить для самого маленького времени каждого ID и старейшее время жизни всех самых младших жизней ID. Это выглядит довольно сложно для меня.
Шаги рабочего процесса являются:
- минимальное значение времени конкретного идентификатора в состоянии Принято
- Шаг 1 для каждого идентификатора в принятом состоянии
- максимальное значение всех значений мин Я подсчитал, на шаге 2.
на данный момент у меня есть следующий код
select min(TO_CHAR(TO_DATE('20000101','yyyymmdd')+(SYSDATE - dm1.time_insert),'hh24:mi:ss'))
from db dm1
where dm1.status='accepted'
group by dm1.id;
Это дает мне последовательность минимальных значений всех записей. Но теперь мне нужно максимальное значение из всех этих минимальных значений, как это сделать? Любой, кто может решить этот случай?
которые вы используете? – ughai
Я использую Oracle DB – Jonas