【发布时间】:2021-09-09 12:37:33
【问题描述】:
我有一个表 Mytable,其中 id - 成员的 id 和 dp_id - 部门的 id:
date id dp_id
2020-11-14 01:22:10.260 300000 002
2020-11-14 01:41:13.260 352575 001
2020-11-14 16:39:31.910 352575 001
2020-11-14 23:39:52.510 352575 001
2020-11-14 00:00:00.260 300000 002
2020-11-15 00:01:20.710 352575 001
2020-11-15 01:00:43.600 352575 001
2020-11-15 13:41:19.410 352575 002
如果id - dp_id (352575 - 001) 对的第一次交易后 30 天内的操作数超过 5,则应标记为 over_lim。
例如,如果id-dp_id 的第一个操作是在01: 41: 13.260,因此,在接下来的 30 天内,我需要计算那里有多少操作,如果有超过5.
即2020-11-15 01: 00: 43.600 352575 001 操作将是 id-dp_id 对的第一个条目的第 5 个操作,因此我们将其标记为 over_lim。以此类推 - 我们需要获取该期间的第一笔交易,然后查看接下来 30 天的交易量。
预期输出,其中tr_count - 每对交易的计数id-dp_id,over_lim- 我们的标记,这是一个超限交易(>=5):
date id dp_id tr_count over_lim
2020-11-14 01:22:10.260 300000 002 1 False
2020-11-14 01:41:13.260 352575 001 1 False
2020-11-14 16:39:31.910 352575 001 2 False
2020-11-14 23:39:52.510 352575 001 3 False
2020-11-14 00:00:00.260 300000 002 2 False
2020-11-15 00:01:20.710 352575 001 4 False
2020-11-15 01:00:43.600 352575 001 5 True
2020-11-15 13:41:19.410 352575 002 1 False
【问题讨论】:
-
为什么最后一行没有被标记?它是大于 5 的第 6 个。
-
@GordonLinoff 因为它是一个新的 id-dp_id 对 352575 - 002,所以它是它的第一个条目
标签: sql oracle oracle-sqldeveloper