我试图从BigQuery中的原始GA数据中获取自上次会话以来的Days。我看到当前会话的visitStartTime,但我怎样才能获得前一个会话时间?
答案 0 :(得分:1)
不确定这是否是您所需要的,但希望这能为您提供前几天的一些见解:
SELECT
fv,
IF(dts IS NULL, NULL, DATE_DIFF(CURRENT_DATE(), PARSE_DATE("%Y%m%d", dts), DAY) ) count_days
FROM(
SELECT
fullvisitorid fv,
ARRAY_AGG(DISTINCT date ORDER BY date DESC)[SAFE_OFFSET(1)] dts
FROM `dataset.ga_sessions_*`
WHERE _TABLE_SUFFIX BETWEEN FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)) AND FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL 0 DAY))
GROUP BY 1
)
正如您在评论中所述,您每天都会运行此分析,因此我使用CURRENT_DATE()
变量作为参考。
它为每位客户提供自上次会议以来经过的天数。如果之前没有会话,则返回NULL
(这样您就可以保留绝对值以供分析参考)。
您可以使用此查询并根据需要进行调整,例如取自上次会话后的过去几天的平均值等。