我正在尝试获取BigQuery中唯一事件的数量,尽管我付出了很多努力,但结果甚至与我在GA中看到的结果不尽相同。某些行的BQ和GA之间的差异最多可达到50%,我不知道为什么。事件总数和用户数与GA中完全相同,只是唯一的事件不匹配。
我正在使用CONCAT函数构建sessionID,当用于计算给定时间段的总会话数时,它返回的数字与我在GA中看到的非常接近。但是,一旦在事件类别列中使用它,数字就会关闭。
这是我的查询
SELECT h.eventInfo.eventCategory,
count(h.eventInfo.eventCategory) as total_events,
count(distinct CONCAT(fullVisitorId, CAST(visitId AS STRING))) as unique_events
FROM `marketing-stack.12345678.ga_sessions_20190525` as ga,
UNNEST(ga.hits) as h
GROUP BY h.eventInfo.eventCategory
例如,GA中的顶级事件如下所示:
在BigQuery中:
我在查询中做错什么了吗?GA和BQ在独特事件方面以及您如何计算我不了解的事件之间有区别吗?
在此我不知所措,不胜感激!
答案 0 :(得分:1)
您正在用事件而不是唯一事件来计数用户...
当您NULL
时,操作和标签不得为COUNT(DISTINCT )
。
SUM( (SELECT
COUNT(DISTINCT CONCAT(h.eventInfo.eventCategory,
coalesce(h.eventinfo.eventaction, ''),
coalesce(h.eventinfo.eventlabel, '')
)) FROM t.hits h ) ) uniqueEvents
另请参阅here
答案 1 :(得分:0)
一种可能性是CONCAT()
中发生冲突。您可以尝试使用分隔符:
count(distinct CONCAT(fullVisitorId, ':', CAST(visitId AS STRING))) as unique_events
这只是一种可能性。
另一种可能性是一个或另一个值为NULL
。 COALESCE()
可以帮助:
count(distinct CONCAT(COALESCE(fullVisitorId, ''), ':', COALESCE(CAST(visitId AS STRING), ''))) as unique_events