【发布时间】:2017-03-09 13:08:56
【问题描述】:
我想计算 Bigquery 中“首次登录”到事件“登录”之间的小时数。
我有字符串格式的日期、小时和分钟。
我有 eventAction = 'Sign Up Completion' 或 visitNumber = 1 的行数,并使用 min() 函数查找最早时间。
毕竟我想以小时为单位计算两次之间的差异。
我的问题是 - 日期、hits.hour 和 hits.minute 之间的正确连接是什么 - TIMESTAMP(date) + TIMESTAMP(hits.hour) + TIMESTAMP(hits.minute) - 效果不好。
我使用这个查询:
SELECT
aaa.fullVisitorId,
Signup_time - Reg_time
FROM (
SELECT
fullVisitorId,
MIN(TIMESTAMP(date) + TIMESTAMP(hits.hour) +
TIMESTAMP(hits.minute)) AS Signup_time
FROM TABLE_DATE_RANGE([gapXXX],
DATE_ADD(CURRENT_TIMESTAMP(),-36,'DAY'),
DATE_ADD(CURRENT_TIMESTAMP(),-9,'DAY'))
WHERE eventAction = 'Sign Up Completion'
GROUP BY fullVisitorId ) AS aaa
JOIN (
SELECT
fullVisitorId,
MIN(TIMESTAMP(date) + TIMESTAMP(hits.hour) +
TIMESTAMP(hits.minute)) AS Reg_time
FROM TABLE_DATE_RANGE([gapXXX],
DATE_ADD(CURRENT_TIMESTAMP(),-36,'DAY'),
DATE_ADD(CURRENT_TIMESTAMP(),-9,'DAY'))
WHERE visitNumber = 1
GROUP BY fullVisitorId) AS bbb
ON aaa.fullVisitorId = bbb.fullVisitorId;
【问题讨论】:
标签: date time calendar timestamp google-bigquery