假设我有一个包含“user_id,loaddate”的表,而且许多用户都在user_id中,但有些用户可能会在每个月添加或删除。我如何比较,找出谁被添加或退出到上个月?我想每个月都会比上个月增加一个delta。
答案 0 :(得分:1)
假设LOADDATE表示用户添加到系统的日期,然后新手的增量很容易计算。皱纹是找到被删除的用户。默认情况下无法执行此操作。
执行此操作的常用方法是通过具有由DML触发器填充的并行历史表来维护对感兴趣的表的活动的审计或历史记录。
更为昂贵的方法是为Oracle的moderatley昂贵 - 但非常整洁 - 全面召回产品(AKA闪回数据库)。 Find out more。
答案 1 :(得分:0)
要找出已添加的人,您可以查找其loaddate在上个月内的user_ids。 (或者user_ids,如果用户可以有多个加载日期,其加载日期都在上个月内)。 Oracle数据库没有其先前状态的内存,因此无法查找以前在数据库中但不再存在的内容。也许你可以通过寻找在过去一个月内没有加载日期的用户来取消用户,这取决于你的表的确切工作方式。 (你退出时删除用户吗?)