У меня есть требование, при котором я должен определить, является ли запись новой или измененной.
Мы храним как новые, так и измененные записи в одной таблице с самой последней отметкой времени, и пользователи могут обновлять записив любое время, но мы генерируем отчет в 17:00 один раз в день. Если запись создается в течение последних 24 часов (т. Е. С 17:00 предыдущего дня до 17:00 сегодня), поскольку отчет создается в 17:00, мы должны рассматривать эту запись как новую, даже если она много раз изменялась за время окна отчета. Если запись была создана более 24 часов назад и была изменена в течение последних 24 часов, то мы должны рассматривать ее как измененную.
Я написал запрос, но мне нужно сгруппировать его с 5:00 до 17:00. Я не уверен, как это сделать, кто-нибудь, пожалуйста, помогите!
select emp_id,
case
when count(emp_id) <=1
then 'New'
else 'Modified'
END as status
from (
select emp_id,
emp_status,
trunc(last_updated) as last_updated
from employee
)
group by emp_id,
emp_status,
trunc(last_updated)
order by last_updated)
group by emp_id
order by emp_id;