【发布时间】: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'
【问题讨论】:
-
你读过类似的过去的问题吗,比如这个? stackoverflow.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)
标签: firebase google-bigquery analytics firebase-analytics