Firebase BigQuery-如何按事件排序
最近我开始在工作中使用BigQuery。直到现在,我才设法要求得到我想要的东西,但我被卡住了。 我在我的大查询控制台上从Firebase检索数据。这些数据是我们正在测试的手机游戏中的事件 我想知道每个级别有多少玩家。我不知道怎么做。 我这样做:Firebase BigQuery-如何按事件排序,firebase,google-bigquery,Firebase,Google Bigquery,最近我开始在工作中使用BigQuery。直到现在,我才设法要求得到我想要的东西,但我被卡住了。 我在我的大查询控制台上从Firebase检索数据。这些数据是我们正在测试的手机游戏中的事件 我想知道每个级别有多少玩家。我不知道怎么做。 我这样做: SELECT param.value.string_value AS Version, COUNT (DISTINCT user_pseudo_id) AS Players, param2.value.string_value AS Level F
SELECT
param.value.string_value AS Version,
COUNT (DISTINCT user_pseudo_id) AS Players,
param2.value.string_value AS Level
FROM
`*Name of the dataset*`,
UNNEST(event_params) AS param,
UNNEST(event_params) AS param2
WHERE
event_name = 'Level_end'
AND param.key = 'ABVersion'
AND param2.key = 'Level'
GROUP BY Version,Level
我得到了这个:
我想知道每个级别的玩家数量,并提供ABV版本
谢谢你的帮助 级别是一个整数参数,而不是字符串。所以您应该使用value.int_值作为级别 对于您正在尝试做的事情,我认为这是一个更好的查询:
SELECT
highest_level,
abversion,
count(*) as players
FROM (
SELECT
user_pseudo_id,
ANY_VALUE((SELECT value.string_value FROM UNNEST(params) WHERE key = 'ABVersion')) as abversion,
MAX((SELECT value.int64_value FROM UNNEST(params) WHERE key = 'Level')) as highest_level
FROM `*Name of the dataset*`,
WHERE
event_name = 'Level_end'
AND EXISTS (SELECT 1 FROM UNNEST(params) WHERE key IN ('Level', 'ABVersion'))
GROUP BY user_pseudo_id
)
GROUP BY 1,2
ORDER BY 1,2
您确定级别是字符串参数吗?我想试试param2.value.int_值。如果您能提供该事件的样本数据,那就更好了。除了数据,查询中还有几个优化机会。不过,我想先看看示例数据。谢谢你的快速回答:)你说得对,这是一个int_值!我不知道我为什么写字符串\ u值。非常感谢您提供的优化机会!级别是您建议的int_值。它是这样显示的:1400 2 380 3 350 1,2,3是关卡,数字是玩家的数量再次感谢你@Sabri Karagönen能否请您将其作为答案发布?谢谢非常感谢D