我要创造一个相当复杂的逻辑。我有一些客户诊所遇到的数据,这些数据具有历史测试结果,R_DATE_TESTED
,R_RESULT
映射到每个P_DATE_ENCOUNTER
的每个客户(P_CLIENT_ID
)
数据已排序。如何获取每个客户机遭遇的唯一记录(组P_CLIENT_ID AND P_DATE_ENCOUNTER
),其中R_DATE_TESTED < R_DATE_ENCOUNTER
(但最近的一个)。此外,如果R_DATE_TESTED < R_DATE_ENCOUNTER
不是真的;它返回空值
逻辑结果应如下所示:
其思想是,对于每个P_CLIENT_ID
,每个P_ENCOUNTER_ID
都返回其最近的前一个R_RESULT
(遭遇之前的最新结果)。如果客户机没有在P_DATE_ENCOUNTER
之前的结果,即(R_DATE_TESTED
不是<;P_DATE_ENCOUNTERED
),那么它将为这些列返回null(如前两条记录所示)。我想可能是在分区和.ffill()
上使用一些排序的组合,但我真的被卡住了
Yuo可以使用以下代码:
相关问题 更多 >
编程相关推荐