如何在 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_users
和 total_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?