【发布时间】:2016-11-24 09:09:00
【问题描述】:
在 Google Analytics BigQuery 中,以下查询尝试在 sessions 和 hits 级别聚合信息
SELECT
visitId,
trafficSource.source as source,
trafficSource.medium as medium,
device.browser as browser,
min(hits.hour) as firstHitHour,
boolean(count(hits.eventInfo.eventCategory = "SomeValue")) as hasSomeValue
FROM
[my-table.ga_sessions_20150216]
GROUP BY
visitId, source, medium, browser;
boolean(count(hits.eventInfo.eventCategory = "SomeValue")) as hasSomeValue 行应为true,如果在一行会话的所有点击中,至少有一个点击的hits.eventInfo.eventCategory 等于SomeValue。
预期结果如下:
sessionId source medium browser firstHitHour hasSomeValue
--------------------------------------------------------------------------------------
12318 google cpc firefox 12 true
13317 google organic safari 14 null
13551 bing organic firefox 14 true
13610 orange display chrome 14 true
14381 stackoverflow referral safari 15 false
14422 google organic chrome 15 true
但是,上面提到的那行似乎不起作用。即使我输入了一些愚蠢的值,例如hits.eventInfo.eventCategory = "Blablablabla",它仍然会为某些行输出true(而显然没有命中具有这个愚蠢的值)。
实际上,指令 count(hits.eventInfo.eventCategory = "Blablablabla") - 没有 boolean() 会返回看似随机的结果(与实际计数没有任何共同点)。
这条线应该是什么来触发正确的输出?
【问题讨论】:
标签: google-analytics google-bigquery