【发布时间】:2022-01-14 15:14:18
【问题描述】:
世界!
我有一个第一个“级别”表,看起来像这样:
| level | id | level_date |
|---|---|---|
| 1 | A | 2021-12-02 |
| 2 | A | 2021-12-04 |
| 3 | A | 2021-12-08 |
| 1 | B | 2021-12-02 |
| 2 | B | 2021-12-05 |
| 3 | B | 2021-12-09 |
还有第二张“战斗”桌:
| id | battle_date |
|---|---|
| A | 2021-12-01 |
| A | 2021-12-03 |
| A | 2021-12-06 |
| A | 2021-12-07 |
| B | 2021-12-01 |
| B | 2021-12-02 |
| B | 2021-12-03 |
我想要做的是找到平均战斗次数,需要达到每个级别。
当battle_date > level_X-1_date,但是battle_date
所以对于玩家 A,我们有一场战斗可以达到 1 级,一场战斗可以达到 2 级,还有两次战斗可以达到 3 级。 对于玩家 B,我们有一场战斗可以达到 1 级,有两次战斗可以达到 2 级,零战斗可以达到 3 级
结果表应如下所示:
| level | avg_battle_count |
|---|---|
| 1 | 1 |
| 2 | 1.5 |
| 3 | 1 |
我很确定这是一种“差距和孤岛”问题,但我不知道我应该如何构建一个考虑窗口函数来计算级别的 avg(battle_count) 的查询
【问题讨论】:
-
mySql 还是 BogQuery?
-
只标记您使用的数据库。
-
通常当 BigQuery 和 mySql 都被标记时 - 它以 BigQuery 结束 :o) 但很高兴确认!
标签: sql google-bigquery gaps-and-islands windowed