【发布时间】:2022-01-06 11:35:33
【问题描述】:
oracle 中是否有任何等效的日期函数用于 python pd.merge_asof?请看下面的例子:
表 A1
ID Date
1 12/02/2020
2 11/23/2019
3 09/09/2021
3 10/12/2021
表 A2
ID Date
3 09/12/2021
对于 ID = 3,A2 表中的日期为 09/12/2021。当我尝试将此 ID 和日期与 A1 匹配时,只有 ID 匹配。所以我尝试添加一个逻辑来获得以下输出(因为它是最接近的日期)。
输出
ID Date ID2 Date2
3 09/09/2021 3 09/12/2021
【问题讨论】:
-
不确定我是否理解这个问题。如果您不参考其他语言(如 python),您将获得更多帮助,而是简单地用简单的英语陈述问题。鉴于表 A1 和 A2 中的日期,您是否正在寻找 - 对于 A2 中的每个日期 - 以在表 A1 中找到最接近的日期,即使没有完美匹配?如果是这样,有几个问题:(1)您是在看“之前”和“之后”,还是只看一个方向(例如最近的日期,但只在表 A2 的日期之前)? (2) 是否需要设置一个限制,比如“最接近,但不超过 30 天”?
-
(3) 如果“最近”(两个、三个或更多 ID 的日期都与目标日期与 A2 的距离相等,都等于最小距离)有联系怎么办?归还所有这些?只返回其中一个,如果是,是哪一个? (4) 只是为了确认 - 除了通过 ID 进行匹配之外,您还要这样做 - 对吧?
-
是的,我正在寻找 A1 中没有匹配项的最接近的日期。最近的日期我在之前或之后,没有方向。不,没有限制。最接近的日期可能是不同的年份。
-
如果两个最接近的日期之间存在平局,那么它只为该特定 ID 选择一个日期。