sql - BigQuery Firebase 游戏中每个级别的平均硬币
问题描述
我开发了一个带有关卡和硬币的文字游戏(使用 firebase 作为我的后端)。现在,我在尝试查询我的数据库时遇到了一些困难,因此它将输出一个包含游戏中所有级别的表格以及每个级别的平均用户硬币。例如 :
Level Avg User Coins
0 50
1 12
2 2
如你所见,有一个'level_end'事件,然后我们可以看到'user coin'和'level_num'。这样做的正确方法是什么?
这是我到目前为止所做的,显然是错误的方式:
SELECT event_name,user_id
FROM `words-game-en.analytics_208527783.events_20191004`,
UNNEST(event_params) as event_param
WHERE event_name = "level_end"
AND event_param.key = "user_coins"
解决方案
你似乎想要这样的东西:
SELECT event_param.level_num, AVG(event_param.user_coins)
FROM `words-game-en.analytics_208527783.events_20191004` CROSS JOIN
UNNEST(event_params) as event_param
WHERE event_name = 'level_end' AND event_param.key = 'user_coins'
GROUP BY level_num
ORDER BY level_num;
我对event_params
事件中的内容和直接内容感到有些困惑,因此您可能需要正确限定列引用。
推荐阅读
- matlab - 尽管在我的脚本中以这种方式指定它,但似乎无法强制 y 轴不采用指数表示法。X轴工作正常
- python - Python:pd.DateOffset 导致重复索引
- javascript - 如何阻止部分刷新在 Wordpress Customizer 实时预览中删除分节符?
- python - Python Pandas 列按计数排序
- coq - Coq:展开棘手的符号
- ruby-on-rails - 控制器实例变量不在 JS 视图中呈现
- c# - 如何在 C# WPF 中完美停止 DispatcherTimer
- html - 对父文件夹中的文件执行 href 时出现“无法获取”错误
- pandas-groupby - 如何在进行 groupby 的同时做平均值和最大值?
- python - 使用两个递归函数而不是一个递归和一个迭代进行合并排序