我正在使用Firebase和BigQuery。 我想做的是创建查询,该查询向我显示“订单”的平均数量,以及每个“级别”的“ SoftCurrency”,但我不知道该怎么做。
这是数据库中示例事件的简化JSON文件。每当玩家到达下一个级别时,都会发送此类事件。
[
{
"event_name": "LevelUp",
"event_params": [
{
"key": "Level",
"value": {
"string_value": null,
"int_value": "12"
}
},
{
"key": "SoftCurrrency",
"value": {
"string_value": null,
"int_value": "623"
}
},
{
"key": "Orders",
"value": {
"string_value": null,
"int_value": "24"
}
}
]
}
]
答案 0 :(得分:0)
那是我的做法:
SELECT ANY_VALUE(Level) as Lvl, FLOOR(AVG(SoftCurrency)) as average_Coins, FLOOR(AVG(Orders)) as average_Orders
FROM (
SELECT MAX(if(param.key = "SoftCurrency", param.value.int_value, NULL)) AS SoftCurrency,
MAX(if(param.key = "Level", param.value.int_value, NULL)) AS Level,
MAX(if(param.key = "Orders", param.value.int_value, NULL)) AS Orders
FROM (
SELECT user_pseudo_id, event_timestamp, param
FROM `analytics`,
UNNEST(event_params) AS param
WHERE event_name = "LevelUp"
AND (param.key = "SoftCurrency" OR param.key = "Level" OR param.key = "Orders")
)
GROUP BY user_pseudo_id, event_timestamp
)
GROUP BY Level
ORDER BY Lvl