我似乎无法获得与BigQuery中的Google Analytics Premium相同数量的会话和用户。如果这与Google Analytics中的数字不对应,我会使用fullvisitorID来计算会话数(计数)和用户数(唯一计数)?
答案 0 :(得分:3)
虽然 @Felipe Hoffa 是正确的, COUNT(DISTINCT x,10000)会让您获得更准确的数字,但可以通过制作10,000来进一步增强它数量高达1,000,000(我相信这是目前最大的“采样”率:BigQuery Documentation of Count Distinct)。由于很多人都没有在BigQuery中使用Google Anaytics Premium数据,因此这些问题的社区非常小。作为一个在每日基础上使用BigQuery中的GA数据的人,我可以告诉你我的研究和验证表明,以下度量标准定义与您可以获得的Google Analytics(分析)未采样报告将告诉您的内容大致一致。
<强>会话强>
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
mavenCentral()
}
}
用户强>
count(distinct concat(fullvisitorid, string(visitid)), 1000000) as sessions
新用户
count(distinct fullvisitorid, 1000000) as users
<强>浏览量强>
count(distinct (case when totals.newvisits <> 0 then concat(fullvisitorid, string(visitid)) end), 1000000) as new_users
独特的综合浏览量
sum(case when hits.type = "PAGE" then 1 else 0 end) as pageviews
<强>跳出强>
count(distinct (case when hits.type = "PAGE" then concat(fullvisitorid, string(visitid), hits.page.pagepath) end), 1000000) as unique_pageviews
答案 1 :(得分:1)
更新:BQ现在支持EXACT_COUNT_DISTINCT()函数。
正如@ Pentium10所说,COUNT(DISTINCT x)给出了BigQuery上大数字的近似结果。
确切结果的2种替代方案:
COUNT(DISTINCT x, 10000)
如果所述计数小于10000,则给出一个确切的计数。更改值更高(结果更慢)
SELECT COUNT(*) FROM (
SELECT x
FROM [table]
GROUP EACH BY x
)
还以精确的方式计算不同的值。