Ищите способ выбрать одно «состояние» для «id1» на основе самого низкого «id2», а затем МАКС. «The_date». Я смог сделать это, создав несколько подзапросов, сначала найдя min id2 для id1, затем обнаружив максимальное значение «the_date» для id2 и присоединив их к исходной таблице. Но похоже, что должен быть способ сделать это с одним qry?
with data as(
Select 101 as id1, 11 as id2, to_date('01/02/2019','MM/DD/YYYY') as the_date, 'a' as status from dual union all
Select 101 as id1, 11 as id2, to_date('01/01/2019','MM/DD/YYYY') as the_date, 'b' as status from dual union all
Select 101 as id1, 24 as id2, to_date('01/02/2019','MM/DD/YYYY') as the_date, 'g' as status from dual union all
Select 200 as id1, 41 as id2, to_date('01/02/2017','MM/DD/YYYY') as the_date, 'c' as status from dual union all
Select 200 as id1, 61 as id2, to_date('01/02/2019','MM/DD/YYYY') as the_date, 'z' as status from dual)
Результат qry должен быть:
id1|id2|the_date|status
101|11|'01/02/2019'|a
200|41|'01/02/2017'|c