У меня есть данные, как показано ниже
ID date state
1 24-Aug-18 Not defined
1 23-Aug-18 Incorrect
1 22-Aug-18 Incorrect
1 21-Aug-18 Incorrect
1 1-Aug-18 Correct
1 23-Jul-17 Incorrect
1 22-Jul-17 Incorrect
1 21-Jul-17 Incorrect
1 10-Jul-17 Correct
Запись 1 может оставаться в неправильном состоянии в течение 3 дней после того, как она переходит к «не определено» (если только какое-либо обновление не было внесено в запись. Если сделано, то оно возвращается к «Исправить»). Неопределенное состояние следует избегать. Теперь мне нужно определить запрос так, чтобы запрос мог идентифицировать минимальную дату последней записи, когда запись перешла в неправильное состояние, то есть в этом случае 21 августа 2018 года. Также проблема здесь в том, что таблица не имеет уникальных ключей.
Я пробовал приведенный ниже код, но он выдает ошибку
'ORA-01427: однострочный подзапрос возвращает более одной строки'
select id, min(date) from table where state = 'Incorrect' group by id having
((Select trunc(MAX (date)) from table where state = 'Incorrect'
group by id) >= (select trunc(Max (date)) from table where state = 'Correct'
group by id))