Plsql 根据先前的事件确定事件日期和时间

Plsql 根据先前的事件确定事件日期和时间,plsql,Plsql,我有一个Oracle DB表,其中包含一些关于游戏网站用户的信息。每个玩家都有一个唯一的玩家id,并为每个游戏会话分配一个新会话id。一个游戏会话通常跨越数周,并且表中每天都有一个条目,用于每个玩家的游戏会话。玩家可以每天收集或不收集红利点数,此信息记录在红利点数列中 我想确定每7天收集一次积分的玩家,从会话开始到会话结束。例如,如果游戏玩家的课程是2020年7月2日,我首先想确定他们在2020年7月2日到2020年8月8日之间是否有任何一天可以获得积分。假设该玩家在2020年7月6日获得了加分

我有一个Oracle DB表,其中包含一些关于游戏网站用户的信息。每个玩家都有一个唯一的玩家id,并为每个游戏会话分配一个新会话id。一个游戏会话通常跨越数周,并且表中每天都有一个条目,用于每个玩家的游戏会话。玩家可以每天收集或不收集红利点数,此信息记录在红利点数列中

我想确定每7天收集一次积分的玩家,从会话开始到会话结束。例如,如果游戏玩家的课程是2020年7月2日,我首先想确定他们在2020年7月2日到2020年8月8日之间是否有任何一天可以获得积分。假设该玩家在2020年7月6日获得了加分,在这种情况下,他们接下来的7天时间段将从2020年7月6日开始重新启动,并在2020年7月12日结束,依此类推,直到达到会话结束时间,或者如果会话仍然处于活动状态,那么会话结束时间将为空

最后,我想总结一下每名球员在7天内获得奖励积分的人数

样本数据:

gamer_id,session_id,session_start_dt_tm,session_calendar_day,bonus_points,session_end_dt_tm
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-02,0,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-03,0,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-04,0,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-05,0,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-06,5,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-07,11,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-08,0,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-09,0,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-10,0,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-11,0,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-12,0,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-13,0,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-14,0,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-15,0,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-16,0,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-17,4,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-18,1,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-19,1,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-20,5,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-21,0,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-22,0,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-23,8,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-24,6,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-25,0,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-26,3,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-27,1,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-28,1,2020-07-29 20:21:18
1h22-hd3u-77-gue8,7119,2020-07-02 17:30:21,2020-07-29,2,2020-07-29 20:21:18
77df-jgf9-47-q10b,819472,2020-09-24 03:00:11,2020-09-24,3,null
77df-jgf9-47-q10b,819472,2020-09-24 03:00:11,2020-09-25,7,null
77df-jgf9-47-q10b,819472,2020-09-24 03:00:11,2020-09-26,2,null

我认为一个很好的起点是Oracle分析函数。到目前为止,您尝试了什么?您是否有一些与您尝试的内容相关的具体问题