Oracle Query: Как получить только записи, имеющие дату после определения типа значения? - PullRequest
1 голос
/ 16 мая 2019

У меня есть таблица с именем item_log с этими примерами данных

LOG_ID   | LOG_TYPE  | LOG_DATE
401      | R1        | 1-1-2018
401      | R2        | 1-2-2018
401      | R3        | 2-2-2018
401      | R1        | 2-3-2018
401      | R2        | 3-1-2018
402      | R1        | 1-1-2018
402      | R2        | 1-2-2018
402      | R3        | 2-2-2018
403      | R1        | 1-1-2018
403      | R2        | 1-2-2018
403      | R3        | 2-2-2018
404      | R1        | 1-1-2018
404      | R2        | 1-2-2018
404      | R3        | 2-2-2018
404      | R4        | 2-4-2018
404      | R5        | 5-2-2018

Мне нужно показать только те записи LOG_ID, дата которых появляется после ТИПА R3.

Я предполагаю, что это будет подзапросом, но я новичок в их выполнении и новичок в оракуле, поэтому любые рекомендации будут оценены.

Заранее благодарю за знание.

результаты показывают что-то вроде этого:

LOG_ID   | TYPE  | LOG_DATE
401      | R3    | 2-2-2018
404      | R3    | 2-2-2018

Ответы [ 3 ]

2 голосов
/ 16 мая 2019

Использование lead()

DEMO

select * from
(
select *,lead(log_type) over(partition by log_id order by log_date) as nextlog
from t 
)A where log_type='R3' and nextlog is not null

ВЫВОД:

log_id  log_type    log_date
401      R3         02/02/2018 00:00:00
404      R3         02/02/2018 00:00:00
0 голосов
/ 16 мая 2019

Вы можете попробовать этот запрос:

SELECT log_id, log_type, 
    MAX(log_date)
FROM item_log l
WHERE log_type = 'R3'
GROUP BY log_id, log_type
HAVING MAX(log_date) < (
        SELECT MAX(log_date)
        FROM item_log
        WHERE log_id = l.log_id
    );
0 голосов
/ 16 мая 2019

Я думаю, вы хотите, чтобы значения, тип которых R3, в этом случае просто добавьте это в предложении where, например

SELECT DISTINCT Log_id, Type, Log_Date 
FROM item_log
WHERE log_type = 'R3';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...