我正在测试一个复杂的数据库规则,我需要帮助来制定逻辑以测试下面的场景。
我有一个输出如下,让我们说表名temp
BUSINESS_KEY STATUS_KEY CREATE_TIMESTAMP
123 a1 1 P.M.
123 a1 1:30 P.M.
123 b1 2:00 P.M.
123 a1 2:30 P.M.
我必须从以上
中获取以下记录BUSINESS_KEY STATUS_KEY CREATE_TIMESTAMP
123 a1 1 P.M.
123 b1 2:00 P.M.
123 a1 2:30 P.M.
我必须丢弃第二条记录,规则是如果相同的status_key在输出中输入连续的时间戳,就像在凌晨1点的示例中那样。下午1:30,只收到最早的时间戳记录。我被允许选择第四条记录,因为它不是第一条记录的连续记录。
我尝试了所有rank(),row_number,自联接组合,但没有奏效。有人可以帮忙吗?
答案 0 :(得分:0)
一种方法使用<Directory>
,另一种方法使用lag()
的差异。后者适用于SQL Server 2012之前。使用row_number()
这很容易:
lag()