Кто из подозреваемых получил самый большой тюремный срок? В полученной таблице отобразить имя

select name, subquery.DAYS
from suspects,
(select suspect_id, max(end_date - start_date) DAYS
from crimes
where  start_date BETWEEN TO_DATE (start_date, 'DD.MM.YY') AND TO_DATE (end_date, 'DD.MM.YY')) subquery
where suspects.suspect_id = subquery.suspect_id;

[![таблица crimes][1]][1] уже все поперепробывал, не могу вывести имя вместе с максимальным сроком

[![таблица suspects][2]][2]

таблица crimes [1]: https://i.stack.imgur.com/ufqzz.png таблица suspects [2]: https://i.stack.imgur.com/GSAoM.png


Ответы (1 шт):

Автор решения: ESkri

Тут напрашивается агр. функция keep, она как раз для этого сделана

select
    min(name) keep(dense_rank last order by sum(end_date - start_date)) as winner,
    max(sum(end_date - start_date)) as srok
from
    crimes
    join suspects using(suspect_id)
group by
    suspect_id, name
→ Ссылка