【发布时间】:2020-12-20 12:33:25
【问题描述】:
我在 oracle 表中有一个列,其中包含按如下排序顺序以逗号分隔的日期值。
ID|LIST_OF_DATES
--|---------------
1 |2020-11-01,2020-11-04,2020-11-05,2020-11-10,2020-11-12,2020-11-14,2020-11-16,.....2020-11-26,2020-11-30
这里的日期列表不是连续的日期列表。我的要求是获取落在输入窗口内的日期列表的最大值的索引。上面提供的数据的示例输出。
INPUT_DATE_FROM: 2020-11-10
INPUT_DATE_TO: 2020-11-15
对于上述输入范围.. 我们有三个日期在该范围内,它们是 2020-11-10,2020-11-12,2020-11-14,其中 2020-11-14 是最大值。 2020-11-14 是日期列表中的第 6 个值,这是我需要的查询的输出。
OUTPUT:
ID|INDEX_OF_MAX_DATE
1 |5 (Assuming 0 is the start index)
当输入窗口更改为 2020-11-25 到 2020-11-30 时,我们只有两个日期,其中 2020-11-30 是最大值。我需要这个最大值的索引。
使用 oracle SQL 获得此结果的最佳方法是什么?我的表将有大约 4 -500 万个唯一 ID,应该对其进行计算。
【问题讨论】:
标签: sql oracle window-functions