Google bigquery 在bigquery中缺少使用分区的分析函数

Google bigquery 在bigquery中缺少使用分区的分析函数,google-bigquery,Google Bigquery,我尝试使用LAG函数和PARTITION BY来计算时间戳的差异 SELECT uuid, event_info, TIMESTAMP_TO_MSEC(event_time) - LAG(TIMESTAMP_TO_MSEC(event_time),1) OVER (PARTITION BY userId ORDER BY event_time ASC) FROM [DataSet.TableName] ORDER BY uuid, event_time 但这会从bigquery

我尝试使用LAG函数和PARTITION BY来计算时间戳的差异

SELECT
 uuid,
 event_info,
 TIMESTAMP_TO_MSEC(event_time) - LAG(TIMESTAMP_TO_MSEC(event_time),1) OVER (PARTITION BY userId ORDER BY event_time ASC)  
FROM
 [DataSet.TableName]
ORDER BY
 uuid,
 event_time
但这会从bigquery中生成一个错误,即“error:Missing function in解析表达式at:4.95-4.153”

但是,如果我把第4行分成两部分

 TIMESTAMP_TO_MSEC(event_time) as time,
 LAG(TIMESTAMP_TO_MSEC(event_time),1) OVER (PARTITION BY userId ORDER BY event_time ASC) as previousTime,
然后它运行得很好。解决方法是使用上面的“修复”,然后将整个查询包装到另一个查询中,这样我就可以按需要执行计算

 previousTime - time as difference
但这似乎有点老套,其他SQL变体对查询没有问题

有人有什么建议吗

谢谢,
Brad

这应该用BigQuery的标准SQL方言修复-


请注意,您需要使用等效的
UNIX\u MILLIS
函数,而不是旧式SQL中的
TIMESTAMP\u TO_MSEC
函数。

谢谢Mosha。如果我选择该选项,然后将其另存为视图,我是否可以安全地假定该选项将与视图一起保存?对不起,目前还没有对标准SQL的视图支持,但很快就会出现。我无法给出确切的时间表,但它正在积极开发中,因此我希望如果一切顺利,它将在几个月后提供。我在文档中看不到UNIX_MILLIS函数。请你给我指一下好吗?谢谢re:部署到视图:这很好,但现在我必须使用嵌套的select语句解决方案。:)谢谢你的有用信息!UNIX_MILLIS和其他时间戳转换函数记录在此处: