【发布时间】:2018-01-26 00:01:43
【问题描述】:
我们正在验证 Big Query 中的查询,但无法获得与谷歌分析 UI 匹配的结果。可以在here 找到类似的问题,但在我们的案例中,仅当我们对 ecommerce_action.action_type 应用特定过滤器时才会出现不匹配。
这里是查询:
SELECT COUNT(distinct fullVisitorId+cast(visitid as string)) AS sessions
FROM (
SELECT
device.browserVersion,
geoNetwork.networkLocation,
geoNetwork.networkDomain,
geoNetwork.city,
geoNetwork.country,
geoNetwork.continent,
geoNetwork.region,
device.browserSize,
visitNumber,
trafficSource.source,
trafficSource.medium,
fullvisitorId,
visitId,
device.screenResolution,
device.flashVersion,
device.operatingSystem,
device.browser,
totals.pageviews,
channelGrouping,
totals.transactionRevenue,
totals.timeOnSite,
totals.newVisits,
totals.visits,
date,
hits.eCommerceAction.action_type
FROM
(select *
from TABLE_DATE_RANGE([zzzzzzzzz.ga_sessions_],
<range>) ))t
WHERE
hits.eCommerceAction.action_type = '2' and <stuff to remove bots>
)
从使用内置购物行为报告的 UI 中,我们得到 3.836M 的带有产品详细信息视图的唯一会话,而使用上述查询的 Big Query 中的唯一会话为 3.684 万。
几个问题: 1) 我们的印象是购物行为报告“带有产品视图的会话”细分基于 ecommerce_action.actiontype 过滤器。真的吗? 2) 是否有 UI 可能从中提取的 .totals 预聚合表?
【问题讨论】:
-
请注意,
COUNT(DISTINCT ...)是使用旧版 SQL 时的近似值。请改用标准 SQL(首选)或将EXACT_COUNT_DISTINCT与旧版 SQL 一起使用。 -
是的,我们发现在#measure 中指出 EXACT_COUNT_DISTINCT 后,我们的误差在 0.3% 以内。感谢您的确认!
-
在检索您不会使用的列时也要小心,这会使您的查询更加昂贵。我建议遵循 Elliott 的建议,标准 SQL 比传统 SQL 更强大。
-
@ElliottBrossard:提升回答? ;-)
-
添加了一些链接作为答案(不过,我不确定是否还有其他原因造成了这种差异)。
标签: google-analytics google-bigquery