eQuery没有返回所有有效结果

时间:2017-08-25 13:12:50

标签: sql

我有一个名为StepAndStatus的表,它有超过一百万行,没有主键。我有一个每天运行一次的外部进程,只能提取最后24小时的数据(基于状态事件日期)。我偶尔会从外部进程(我无法控制)获得重复项,我尝试在包含此查询的存储过程中进行清除:

Begin
WITH cte AS (
    SELECT *, 
    row_number() OVER(PARTITION BY StepName, StatusName, StatusEventDate, CandidateID ORDER BY CandidateID desc) AS [rn]
    FROM StepANDStatus
)
DELETE from cte WHERE [rn] > 1; 
End;

当我运行此查询时,我会收到许多行受影响/删除的声明。但是,当我第二天运行删除查询的选择版本时,我会得到前几天的结果(有时是在当天之前整整一个月),这些结果应该每天都被捕获到当前日期。有没有理由我的查询没有返回每一行?我已经比较了一天到下一天的重复ID,它们完全是唯一的。

0 个答案:

没有答案