如何在 google Big Query 上添加页面浏览量维度?

Posted

技术标签:

【中文标题】如何在 google Big Query 上添加页面浏览量维度?【英文标题】:How Can i Add the page views Dimension on google Big Query? 【发布时间】:2018-04-18 07:18:09 【问题描述】:

如您所见,我正在尝试在每个平台的 Google Big Query 上添加页面视图维度(除了 total_userstotal_sessions)。有人知道怎么做吗?

SELECT
platform,
SUM(users) AS total_users,
 SUM(sessions) AS total_sessions,
 FROM (
 SELECT
  CASE
      WHEN REGEXP_MATCH(hits.appInfo.id,r'^example$') AND 
 hits.page.hostname IS NULL THEN "android"
  WHEN REGEXP_MATCH(hits.appInfo.id,r'^com.example.app$')
  AND hits.page.hostname IS NULL THEN "ios"
  WHEN REGEXP_MATCH(hits.page.hostname,r'^m\..*?example\.') THEN "Mobile"
  WHEN REGEXP_MATCH(hits.page.hostname,r'^\w2,3\..*?example\.') THEN 
 "Desktop"
   ELSE "unknown"
 END AS platform,
 count (DISTINCT fullVisitorId) AS users,
 fullvisitorid,
 COUNT(DISTINCT visitid) AS sessions,
 SUM(totals.screenviews) AS screenviews
 FROM
 TABLE_DATE_RANGE([example_table],TIMESTAMP('2018-01-01'),TIMESTAMP('2018-03- 
  31'))
  GROUP EACH BY
  fullvisitorid,
  platform,
  )
  GROUP BY
   platform

【问题讨论】:

页面浏览量维度是什么意思?你想通过页面路径分割相同的数据吗?或者你想要计数(浏览量)? 我想要所有页面浏览量的总和,sum(paageviews) 相同的数据按页面路径拆分? 您能否更好地描述您想要实现的目标?目前尚不清楚您的上下文中的 页面浏览量维度 是什么,也许您可​​以共享文档链接或提供对该指标应包含的内容的更好描述。另外,我找到了计算页面浏览量的this other Stack Overflow question,也许有帮助。 【参考方案1】:

在您的情况下,您实际上不需要子查询。 其他一些注意事项:

COUNT(DISTINCT) 只是旧版 SQL 中的估计值 COUNT(DISTINCT visitId) 没有计算任何有用的东西 - 请参阅 my answer to this post 对于浏览量,我只是添加了 totals.pageviews 的总和。您还可以计算hits.type='PAGE' 的点击次数,请参阅Export-Schema
SELECT
  CASE
    WHEN REGEXP_MATCH(hits.appInfo.id,r'^example$') AND hits.page.hostname IS NULL THEN "Android"
    WHEN REGEXP_MATCH(hits.appInfo.id,r'^com.example.app$') AND hits.page.hostname IS NULL THEN "iOS"
    WHEN REGEXP_MATCH(hits.page.hostname,r'^m\..*?example\.') THEN "Mobile"
    WHEN REGEXP_MATCH(hits.page.hostname,r'^\w2,3\..*?example\.') THEN "Desktop"
    ELSE "unknown"
  END AS platform,
  COUNT(DISTINCT fullVisitorId) AS usersEst, -- approximate value .. count(distinct) in legacy sql is only an estimation. In standard sql it would be the real deal.
  EXACT_COUNT_DISTINCT(fullVisitorId) as exactUsers,
  -- COUNT(DISTINCT visitid) AS sessions, -- that's wrong! visitIds are only unique per fullvisitorid
  SUM(totals.visits) as sessions,
  SUM(totals.screenviews) AS screenviews,
  SUM(totals.pageviews) AS pageviews
FROM
  TABLE_DATE_RANGE([example_table],TIMESTAMP('2018-01-01'),TIMESTAMP('2018-03-31'))
GROUP BY
  1

请考虑使用标准 SQL - 它更强大,您可以获得更多控制权。

【讨论】:

以上是关于如何在 google Big Query 上添加页面浏览量维度?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Google Big Query 中的多个列上执行模式功能

使用 Google Big Query 在 Google App 脚本上超过最大执行时间

如何使用 Google Big Query 在 GROUP_CONCAT 上获取不同的值

如何将 .gz 文件上传到 Google Big Query?

将文件从 Google Cloud 自动上传到 Big Query

Google Data Studio:如何使用自定义 Big Query 查询创建时间序列图表