你好,我想知道這是預期的行為當使用最後或last_value窗口函數?我寫一個查詢是這樣的:
選擇col1、col2 last_value (col2)(由col1 order by col2分區)作為column2_last從值(10)、(11)、(12)、(20)、(21)、(22);
在雪花,我得到以下結果。的行為感覺是對的,因為我們分區col1和訂購col2 (https://docs.snowflake.com/en/sql-reference/functions/last_value.html)。
在磚,我得到:
ORDER BY似乎不會應用…也許我寫查詢錯誤?
任何了解這種行為將會非常有幫助。另外,我很好奇為什麼最後last_value同義詞嗎?https://docs.www.eheci.com/sql/language-manual/functions/last.html
謝謝!
謝謝你的幫助,@Hubert杜德克!
對於那些偶然;似乎LAST_VALUE模擬相同的功能與SQL Server不,在大多數人的心裏,有一個適當的行/範圍框架窗口。你可以調整它與下麵的語法。
我理解last_value模擬從sql_server是什麼在我的腦海裏一個錯誤,但我不明白為什麼去年()(last_value別名)必須使用相同的窗口行範圍。
選擇col1、col2 LAST_VALUE (col2)(由col1 ORDER BY col2 ASC分區),column2_last LAST_VALUE (col2) /(分區col1 ORDER BY col2 ASC行之間的前和後無限)column2_last_unbound, FIRST_VALUE (col2)(由col1 ORDER BY col2 ASC分區),column2_first FIRST_VALUE (col2) /(分區col1 ORDER BY col2 DESC)作為column2_first_reversed從值(10)、(12)、(11)、(20)、(21)、(22);