Google bigquery 当前行和前一行之间的秒差,并在订单ID也使用google bigquery匹配时将值存储在单独的列中
当订单ID也使用google bigquery匹配时,我想获取当前行和前一行之间的秒差,并将值存储在单独的列中。 备注:第4行根据第7行计算差异,因为这是下一个可用订单id (日期字段不是字符串,而是时间戳)在我的表test中:product.tab1 例如: 请在下面尝试Google bigquery 当前行和前一行之间的秒差,并在订单ID也使用google bigquery匹配时将值存储在单独的列中,google-bigquery,Google Bigquery,当订单ID也使用google bigquery匹配时,我想获取当前行和前一行之间的秒差,并将值存储在单独的列中。 备注:第4行根据第7行计算差异,因为这是下一个可用订单id (日期字段不是字符串,而是时间戳)在我的表test中:product.tab1 例如: 请在下面尝试 我建议你退房 我试图优化这样的查询选择日期,id,DATE-LEAD(DATE)OVER(按id划分按日期描述)作为diff-FROM(选择字符串(DATE)作为DATE,id-FROM[test:product.tab1]
我建议你退房
我试图优化这样的查询选择日期,id,DATE-LEAD(DATE)OVER(按id划分按日期描述)作为diff-FROM(选择字符串(DATE)作为DATE,id-FROM[test:product.tab1]按id-DATE描述排序),但我收到一个错误-解析表达式中缺少函数,你知道我为什么不能这样做吗?
Date Order Difference In Seconds
2016-05-31 11:46:54 UTC 14567 11
2016-05-31 11:46:43 UTC 14567 19
2016-05-31 11:46:24 UTC 14567 20
2016-05-31 11:46:04 UTC 14567 4
2016-05-31 11:46:54 UTC 22455 11
2016-05-31 11:46:43 UTC 24567 0
2016-05-31 11:46:00 UTC 14567 0
SELECT
DATE, id,
IFNULL(TIMESTAMP_TO_SEC(TIMESTAMP(DATE)) -
TIMESTAMP_TO_SEC(TIMESTAMP(prev_date))
, 0) AS Difference_In_Seconds
FROM (
SELECT
DATE, id,
LEAD(DATE) OVER(PARTITION BY id ORDER BY DATE DESC) AS prev_date
FROM
(SELECT STRING(DATE) AS DATE, id FROM [test:product.tab1] )
)
ORDER BY id, DATE DESC