世界!
我有一个第一个“级别”表,看起来像这样:
等级 | ID | 级别日期 |
---|---|---|
1 | 一个 | 2021-12-02 |
2 | 一个 | 2021-12-04 |
3 | 一个 | 2021-12-08 |
1 | 乙 | 2021-12-02 |
2 | 乙 | 2021-12-05 |
3 | 乙 | 2021-12-09 |
和第二个“战斗”表:
ID | 战斗日期 |
---|---|
一个 | 2021-12-01 |
一个 | 2021-12-03 |
一个 | 2021-12-06 |
一个 | 2021-12-07 |
乙 | 2021-12-01 |
乙 | 2021-12-02 |
乙 | 2021-12-03 |
我想要做的是找到平均战斗次数,需要达到每个级别。
当battle_date > level_X-1_date,但battle_date < level_X_date,表示本次战斗需要达到X级,应计入X级。
因此,对于玩家 A,我们有一场战斗可以达到 1 级,一场战斗可以达到 2 级,还有两次战斗可以达到 3 级。对于玩家 B,我们有一场战斗可以达到 1 级,还有两次战斗可以达到2级,零战斗达到3级
结果表应如下所示:
等级 | avg_battle_count |
---|---|
1 | 1 |
2 | 1.5 |
3 | 1 |
我很确定这是一种“差距和岛屿”问题,但我不知道我应该如何构建一个考虑窗口函数的查询来计算级别的 avg(battle_count)