1
使用lag(value,offset)
時,我似乎無法在其他功能中重新使用輸出。BigQuery - 無法重複使用滯後記錄
以下代碼的輸出顯示previous_timestamp_utc
存在,但是兩個函數(分別爲date()
或datediff()
)都返回值。
SELECT
id,
timestamp_utc,
DATE(timestamp_utc) AS date_timestamp_utc,
previous_timestamp_utc,
DATE(previous_timestamp_utc) AS date_previous_timestamp_utc,
DATEDIFF(timestamp_utc,previous_timestamp_utc),
FROM (
SELECT
id,
timestamp_utc,
LAG(timestamp_utc,1) OVER (PARTITION BY id ORDER BY timestamp_utc) AS previous_timestamp_utc,
FROM (
SELECT
SEC_TO_TIMESTAMP (timestamp) AS timestamp_utc,
id,
num_characters,
FROM
[publicdata:samples.wikipedia]))
ORDER BY
4 DESC
LIMIT
1000
任何人都可以解釋爲什麼發生這種情況?
解決方法:我不清楚爲什麼這個工程,但帶斑點的解決方法是預製的lag()
場成date()
:更換
與
LAG(date(timestamp_utc),1) OVER (PARTITION BY id ORDER BY timestamp_utc)
導致previous_timestamp_utc
用於date()
和datediff()
。這不是我們在使用lag()
函數時應該做的事情。
嗨邁克爾,這是在任何地方的公共問題跟蹤?我仍然看到這個問題。我們使用這個功能很多,所以我們很高興知道什麼時候我們可以停止使用這種解決方法 –