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