2016-02-29 39 views
1

嗨有可能將滯後函數的結果轉換爲時間戳。我基本上想在幾秒鐘內得到兩個時間戳的差異。 使用以下代碼,系統告訴我'last_timestamp'的類型是未知的。當我將鼠標光標放在內部查詢的列'last_timestamp'上時,我可以看到它的類型時間戳。Google Bigquery如何將lag()函數結果轉換爲時間戳

SELECT clientId, timestamp 
    FROM (
     SELECT clientId, timestamp, 
       LAG(timestamp,1) OVER 
       (PARTITION BY clientId ORDER BY timestamp) 
       AS last_timestamp 
      FROM [oxidation.201602] 
     ) last 
WHERE (TIMESTAMP_TO_SEC(timestamp) - TIMESTAMP_TO_SEC(last_timestamp) >= (60 * 30)) 
    OR last_timestamp IS NULL 
+0

我想你想要像SELECT的clientId,時間戳,last_timestamp,時間戳:LAST_TIMEBREAK郵票FROM ... – cjm2671

+0

HI thanx的提示。但是,我怎樣才能將差異的結果轉換爲秒或munites? –

回答

1
SELECT clientId, timestamp 
FROM (
    SELECT clientId, timestamp, timestamp_sec, 
    LAG(timestamp_sec, 1) 
     OVER (PARTITION BY clientId ORDER BY timestamp_sec) AS prev_timestamp_sec 
    FROM (
    SELECT clientId, timestamp, TIMESTAMP_TO_SEC(timestamp) as timestamp_sec 
    FROM [oxidation.201602] 
) 
) last 
WHERE timestamp_sec - prev_timestamp_sec >= 60 * 30 
OR prev_timestamp_sec IS NULL 
+0

是的,thx explizit在內部查詢+1中轉換。 –

相關問題