1
我問這個問題:替代LAG()在SQL Server 2008
create partition based on the difference between subsequent row indices in sql server 2012
我只是想知道這是怎麼在舊版本的SQL Server來完成,比如SQL 2008中LAG是不是公認的功能。反正在老版本的SQL中實現滯後函數嗎?
編輯:也許我應該更明確,在解決問題提到的滯後功能,多次使用,有沒有比使用多個熱膨脹係數,以獲得相同的結果更有效的方法?
的CTE(WITH語句)可以用來給每個行你有興趣一個row_number(),通過一個合適的SORT BY,那麼CTE可以自行加入row = row-1,row = ro1 + 1 – Cato
@AndrewDeighton如果我需要多次使用滯後函數,那麼會導致使用很多CTE,有沒有更有效的方法來做到這一點? – dimebucker91
您可以使用多個不同的row_number()(在不同的字段中的ORDER BY)創建一個CTE - 然後您必須在連接中多次連接它 - 它可能會導致很多大表的排序。你可以嘗試子查詢 - 這也可能會遇到效率問題。 – Cato