BigQuery& Firebase - 如何确定每周增长

时间:2017-01-18 11:59:27

标签: firebase google-bigquery firebase-analytics

我正在尝试构建一个仪表板,用于跟踪我的Android应用程序的关键指标。为此,我使用的是BigQuery支持的Firebase分析。

我正试图获得first_open事件countratio的每周增长

  • 本周
  • 前一周
  • 有史以来最好的一周

我可以将当​​前周和前一周的first_open事件计数作为BigQuery中的单独查询(例如以下作为前一周查询的示例):

SELECT
  FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL CAST ( FORMAT_DATE("%u", CURRENT_DATE()) as INT64 ) + 6 DAY)) AS previousMonday,
  FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL CAST ( FORMAT_DATE("%u", CURRENT_DATE()) as INT64 ) DAY)) AS previousSunday,
  COUNT(*) as counter,
  h.name as event
FROM `com_package_app_ANDROID.app_events_*`, UNNEST(event_dim) as h
WHERE _TABLE_SUFFIX
BETWEEN
  FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL CAST ( FORMAT_DATE("%u", CURRENT_DATE()) as INT64 ) + 6 DAY)) 
AND 
  FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL CAST ( FORMAT_DATE("%u", CURRENT_DATE()) as INT64 ) DAY))
AND 
 h.name='first_open'
GROUP BY event
ORDER BY counter DESC

但我无法通过合并2个查询(当前周与前一周)得到比率,而且,我无法获得有史以来最好的一周first_open计数。

1 个答案:

答案 0 :(得分:0)

要获得“有史以来最好的一周”,您可以按周分组事件并按计数排序。像这样......

SELECT 
    DATE_TRUNC(event_date, WEEK) AS week,
    COUNT(*) AS count
FROM BQ_TABLE
WHERE BQ_TABLE.name = 'first_open'
GROUP BY week
ORDER BY count DESC

要获取当前/上周,您可以将上述查询转换为子查询,并按目标周进行过滤。

请注意,“有史以来最好的一周”查询将始终是全表扫描,并且可能会变得很昂贵,具体取决于事件的数量以及执行查询所需的频率。