大查询 - Google Analytics(分析) - 首次访问和购买之间的时差

jrj*_*s83 3 google-analytics google-bigquery

试图获取一个列表:

访客,时间第一次访问,交易发生的时间.

我写的只是抓取具有交易收入的行.我也试图将visitStartTime(这是一个unix日期)转换为通过Date(visitStartTime)的常规日期,但由于输出日期而在组中失败.

任何方向超级有用.

SELECT 
  fullvisitorID, 
  visitNumber,
  visitStartTime,
  hits.transaction.transactionRevenue

FROM 
  [75718103.ga_sessions_20150310],
  [75718103.ga_sessions_20150309],
  [75718103.ga_sessions_20150308],
  [75718103.ga_sessions_20150307],
  [75718103.ga_sessions_20150306],
  [75718103.ga_sessions_20150305],
  [75718103.ga_sessions_20150304],
  [75718103.ga_sessions_20150303],
  [75718103.ga_sessions_20150302],


WHERE totals.transactions >=1

GROUP BY    
  fullvisitorID, visitNumber, visitStartTime, hits.transaction.transactionRevenue;
Run Code Online (Sandbox Code Playgroud)

Mos*_*sky 7

visitStartTime在Google Analytics架构中定义为POSIX时间,表示自纪元以来的秒数.BigQuery TIMESTAMP编码为自纪元以来的微秒数.因此,为了获得TIMESTAMP的开始时间,我使用了TIMESTAMP(INTEGERvisitStartTime*1000000)).hits.time包含自首次命中以来的毫秒数,因此为了获得事务的时间,需要将它们乘以1000以获得微秒粒度,因此TIMESTAMP(INTEGER(visitStartTime*1000000 + hits.time*1000)).由于命中重复RECORD,因此不需要GROUP BY,数据模型已将所有命中组合在一起.把它们放在一起:

SELECT
  fullVisitorId,
  timestamp(integer(visitStartTime*1000000)) as start_time, 
  timestamp(integer(visitStartTime*1000000 + hits.time*1000)) as transaction_time
FROM 
 [google.com:analytics-bigquery:LondonCycleHelmet.ga_sessions_20130910] 
WHERE hits.transaction.transactionRevenue > 0
Run Code Online (Sandbox Code Playgroud)