我有一个要求,我必须确定一条记录是新的还是修改过的。
我们将新的和修改过的记录存储在具有最新时间戳的同一个表中,用户可以随时更新记录,但我们每天下午5点生成一次报告。如果在过去24小时内(即前一天下午5点到今天下午5点)创建了一条记录,由于报告是在下午5点生成的,我们必须将该记录视为新记录,即使该记录在报告窗口时间内被多次修改也是如此。如果一条记录是在超过24小时前创建的,并且在过去24小时内被修改,那么我们必须将其视为已修改。
我已经写了查询,但我需要它的小组早上5点到下午5点,我不知道怎么做,任何人请帮助!
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;发布于 2019-10-23 03:43:45
从截断前的时间中减去17小时,然后对其进行分组:
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 - INTERVAL '17' HOUR) as last_updated
from employee
)
group by emp_id,
emp_status,
last_updated
order by last_updatedhttps://stackoverflow.com/questions/58511170
复制相似问题