Если мы рассмотрим только Service_date
,
select count(case when Service_date > trunc(sysdate) - 5 then 1 end ) as new_records,
count(case when Service_date <= trunc(sysdate) - 5 then 1 end ) as old_records,
100*(count(case when Service_date > trunc(sysdate) - 5 then 1 end ) / count(*))
as percentage_for_new
from maintenance;
выдаст то, что вы хотите, но я думаю, что вам нужна начальная дата для старых записей. Modify_date
может рассматриваться таким же образом.