BigQuery 和 Firebase - 基于键对事件值求和
Posted
技术标签:
【中文标题】BigQuery 和 Firebase - 基于键对事件值求和【英文标题】:BigQuery & Firebase - Sum event Value based on Key 【发布时间】:2017-01-24 12:19:49 【问题描述】:在我的 android 应用程序中,我将用户选择的项目数记录如下
public static void trackItemsSelectedCount(Context context, int count)
Bundle bundle = new Bundle();
bundle.putInt("count", count);
getAnalytics(context).logEvent("items_selected", bundle);
在 BigQuery 中,我可以计算具有事件 items_selected
的条目数,如下所示
SELECT event_dim.name as event,
COUNT(event_dim.name) as event_count
FROM TABLE_DATE_RANGE(package_ANDROID.app_events_intraday_, CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP())
where event_dim.name contains 'items_selected'
GROUP BY event
ORDER BY event DESC LIMIT 1;
我想得到event_dim.params.value.int_value
的总和,与count
一样event_dim.params.key
到目前为止,我正在执行以下操作,但这可能不准确(因为 event_dim.params.key
没有出现在任何地方)。任何更精确查询的想法将不胜感激:
SELECT event_dim.name as event,
COUNT(event_dim.name) as event_count ,
COUNT(event_dim.params.value.int_value) as value_count
FROM TABLE_DATE_RANGE(package_ANDROID.app_events_intraday_, CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP())
where event_dim.name contains 'items_selected'
GROUP BY event
ORDER BY event DESC LIMIT 1;
回答
SELECT
SUM((SELECT params.value.int_value FROM x.params WHERE params.key = 'count')) AS count
FROM package_ANDROID.app_events_20170123, UNNEST(event_dim) AS x
WHERE x.name = 'items_selected'
【问题讨论】:
你读过类似的过去的问题吗,比如这个? ***.com/questions/41090396/… 我还没有找到这个。谢谢。经过调查,我想出了以下查询:SELECT SUM((SELECT params.value.int_value FROM x.params WHERE params.key = 'count')) AS count FROM package_ANDROID.app_events_20170123, UNNEST(event_dim) AS x WHERE x.name = 'items_selected'
太棒了!您可能希望将其发布为您问题的答案,以便其他人可以更轻松地找到解决方案。
答案仍有待验证,但我同时将其添加到答案中。欢呼
@TurhanTech - 您应该将您的答案作为实际答案 - 而不仅仅是对您的问题的更新。这是允许的,并且在 SO 上被认为是好的,除非您当然已经有了更好的答案。更重要的是-如果您的答案是您问题的所有答案中最好的-您可以接受(尽管您不能投票自己的答案):o)
【参考方案1】:
SELECT
SUM((SELECT params.value.int_value FROM x.params WHERE params.key = 'count')) AS count
FROM package_ANDROID.app_events_20170123, UNNEST(event_dim) AS x
WHERE x.name = 'items_selected'
【讨论】:
虽然这可能是正确的答案,但它并不能解释为什么它会起作用。以上是关于BigQuery 和 Firebase - 基于键对事件值求和的主要内容,如果未能解决你的问题,请参考以下文章
如何从 BigQuery 中的 Array(Struct) 类型数据结构中获取每个键名的值