获取SQL上行之间的增量

获取SQL上行之间的增量,sql,sql-server,Sql,Sql Server,我需要得到同一列上的行之间的差异。我可以使用lag()覆盖,但是如果名称改变了,如何获得像图片一样的结果,然后开始作为新的计数 类似这样的内容: select t.*, (call_received - lag(call_received, 1, 0) over (partition by agent_name order by id) ) as delta from t; 请注意,这使用了罕见的三参数形式lag()如下: select t.*,

我需要得到同一列上的行之间的差异。我可以使用lag()覆盖,但是如果名称改变了,如何获得像图片一样的结果,然后开始作为新的计数

类似这样的内容:

select t.*,
       (call_received - 
        lag(call_received, 1, 0) over (partition by agent_name order by id)
       ) as delta
from t;
请注意,这使用了罕见的三参数形式
lag()

如下:

select t.*,
       (call_received - 
        lag(call_received, 1, 0) over (partition by agent_name order by id)
       ) as delta
from t;

请注意,这使用了罕见的三参数形式
lag()

,这是一个很大的帮助。这对我的成绩很有帮助。谢谢这帮了大忙。这对我的成绩很有帮助。谢谢