问:如何根据1列的变化值对记录进行排名?
我有以下数据(https://pastebin.com/vdTb1JRT):
EmployeeID Date Onleave
ABH12345 2016-01-01 0
ABH12345 2016-01-02 0
ABH12345 2016-01-03 0
ABH12345 2016-01-04 0
ABH12345 2016-01-05 0
ABH12345 2016-01-06 0
ABH12345 2016-01-07 0
ABH12345 2016-01-08 0
ABH12345 2016-01-09 0
ABH12345 2016-01-10 1
ABH12345 2016-01-11 1
ABH12345 2016-01-12 1
ABH12345 2016-01-13 1
ABH12345 2016-01-14 0
ABH12345 2016-01-15 0
ABH12345 2016-01-16 0
ABH12345 2016-01-17 0
Run Code Online (Sandbox Code Playgroud)
我想产生以下结果:
EmployeeID DateValidFrom DateValidTo OnLeave
ABH12345 2016-01-01 2016-01-09 0
ABH12345 2016-01-10 2016-01-13 1
ABH12345 2016-01-14 2016-01-17 0
Run Code Online (Sandbox Code Playgroud)
所以我想我是否可以以某种方式创建一个排名列(如下所示),该列根据Onleave列中的值递增 - 由EmployeeID列分区.
EmployeeID Date …Run Code Online (Sandbox Code Playgroud) 此处的示例数据:http :
//rextester.com/VNGMF66717
我有以下数据:
ID Year Date
1111 2016 2016-02-28
1111 2016 2016-02-28
1111 2016 2016-03-31
1111 2016 2016-03-31
1111 2016 2016-03-31
1111 2016 2016-04-02
1111 2016 2016-05-31
1111 2016 2016-08-01
1111 2016 2016-12-11
1111 2017 2017-01-02
1111 2017 2017-01-02
1111 2017 2017-02-04
1111 2017 2017-02-04
1111 2017 2017-07-08
2222 2016 2016-02-11
2222 2016 2016-02-11
2222 2016 2016-03-28
2222 2016 2016-03-28
2222 2016 2016-03-28
2222 2016 2016-07-22
2222 2016 2016-12-31
2222 2017 2017-02-01
2222 2017 2017-02-14
Run Code Online (Sandbox Code Playgroud)
我想直接在SELECT语句中使用线索窗口函数添加NextDate列(在每个ID和年份内重置),而不是像提供的示例中那样使用RANK …