我正在创建一个带有分区的cte,该分区按递减计数命令datetime2标记并应用row_number(),然后选择第1行以获取最新日期。
with cte1 as
(
select Customer_Number, event, Source_update_date, row_number() over
(partition by Customer_Number order by Source_update_date desc) row_num
from schema.table
where event = ''ACTIVE''
)
select Customer_Number, event
from cte1
where row_num = 1
我注意到最近的日期被选中,但不是最大的.nnnnnnn部分。怎么解释这个?它是一个DB2服务器
这两个日期是:
2018-03-27 09:22:52.0000230
2018-03-27 09:21:16.0000210(即使210小于230,这个被选为顶部)
在查看我的where语句后,我注意到2018-03-27 09:22:52.0000230被排除,对where语句的更改现在在上述查询中产生了正确的结果。我删除了event = ACTIVE的地方,因为我发现有时最近的事件是CLOSE,就像上面的customer_number一样。