如何在BigQuery的上一次会话中获得Days

时间:2017-08-01 07:23:27

标签: google-bigquery

我试图从BigQuery中的原始GA数据中获取自上次会话以来的Days。我看到当前会话的visitStartTime,但我怎样才能获得前一个会话时间?

1 个答案:

答案 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(这样您就可以保留绝对值以供分析参考)。

您可以使用此查询并根据需要进行调整,例如取自上次会话后的过去几天的平均值等。