当列的值改变时增加行号

increment row number when value of column changes

我需要帮助在 SQL 服务器 2012 中为以下数据编写查询。数据按日期排序。

 Person     DEVICE   DATE  
------     ---   
person1    D1       1/1/2015
person1    D1       5/1/2015
person1    D2       6/1/2015
person1    D2       10/1/2015
person1    D1       11/1/2015
person1    D1       16/1/2015
person1    D2       17/1/2015
person1    D2       20/1/2015

我需要有一个 GN 列,只要 DEVICE 值发生变化,它就会递增。我的结果应该如下所示

GN 人 设备日期
--- ------ ----- ------
 1 人1 D1 1/1/2015
 1 人1 D1 5/1/2015
 2 人1 D2 6/1/2015
 2 人1 D2 10/1/2015
 3 人1 D1 11/1/2015
 3人1 D1 16/1/2015
 4 人1 D2 17/1/2015
 4 人1 D2 20/1/2015

这可以通过在 case 语句中使用滞后函数来完成。滞后函数将允许您将当前行值与其前行值进行比较。

https://msdn.microsoft.com/en-us/library/hh231256.aspx