无法将LAG或LEAD的结果转换为整数

时间:2014-09-29 00:19:58

标签: google-analytics google-bigquery

我一直在尝试根据LAG或LEAD函数的结果进行计算。

在INTEGER()转换函数中封装函数似乎会导致OVER函数出现问题并引发以下错误:

无法识别的分析函数:INT64不能与OVER()子句一起使用

以下是可以正常工作的基本代码,但是当我添加一个函数时,它会产生错误:

LEAD(hits.hitNumber,1)OVER(由fullvisitorID,visitid,visitnumber ORDER BY hits.hitNumber DESC分割)作为nextHit

我用来产生此错误的代码如下:

INTEGER(LEAD(hits.hitNumber,1))OVER(分区为fullvisitorID,visitid ORDER BY hits.hitNumber DESC)as nextHit

以下似乎无效:

INTEGER(LEAD(hits.hitNumber,1)OVER(分区为fullvisitorID,visitid ORDER BY hits.hitNumber DESC))作为nextHit

遇到" " OVER" " OVER""在第8行,第36栏。期待:")"

我是否真的需要将其作为子查询来实现这项工作,还是有不同的解决方案?

1 个答案:

答案 0 :(得分:1)

2种可能的解决方案:

正如Jordan所说,将INTEGER()转换为LEAD():

SELECT LEAD(INTEGER(hits.hitNumber), 1) OVER (PARTITION BY fullvisitorID, visitid, visitnumber ORDER BY hits.hitNumber DESC) as nextHit
FROM [dataset.ga_sessions_20140107] 

或者在您的建议中,使用子查询:

SELECT INTEGER(nextHit) FROM (
  SELECT LEAD(hits.hitNumber, 1) OVER (PARTITION BY fullvisitorID, visitid, visitnumber ORDER BY hits.hitNumber DESC) as nextHit
  FROM [dataset.ga_sessions_20140107]
)