【发布时间】:2018-08-07 08:30:42
【问题描述】:
我有一个 Google Analytics 事件,当进行某些交互时,它会在我的网站上触发,对于会话中的用户可能会触发也可能不会触发,或者可以触发多次。
我想每天返回显示用户 ID 以及第一个和最后一个事件标签的值的结果。我曾尝试使用 MAX(hits.eventInfo.eventLabel) 来执行此操作,但是当我检查结果时,这并没有像我预期的那样返回该用户当天的最后一个值。
SELECT Date,
customDimension.value AS UserID,
MAX(hits.eventInfo.eventLabel) AS last_value
FROM `project.dataset.ga_sessions_20*` AS t
CROSS JOIN UNNEST(hits) AS hits
CROSS JOIN UNNEST(t.customdimensions) AS customDimension
WHERE parse_date('%y%m%d', _table_suffix) between
DATE_sub(current_date(), interval 1 day) and
DATE_sub(current_date(), interval 1 day)
AND hits.eventInfo.eventAction = "Value"
AND customDimension.index = 2
GROUP BY Date, UserID
例如,上面的查询返回用户 X 具有以下 MAX() 值的结果:
20180806 User_x 69.96
但是当我查看当天用户交互的详细信息时:
基于此,我希望看到 79.95 作为我的 MAX() 结果,因为它具有最高的命中数,而不是我似乎从会话中间的某个地方选择了一个值 - 我该如何调整我的查询以确保我选择了最后一个事件值?
【问题讨论】:
标签: sql google-bigquery