我正在使用一个表,每个客户有几十行,每行都有一个日期和几个代表各种状态的列。我只对拉取某一特定列中发生更改的行感兴趣(特别是 0 到 1 或 1 到 0,请参见下面的状态列)。
我不能简单地使用row_number() over (partition by customer_id, status order by date)
,因为状态可以在 0 和 1 之间来回切换。
这是我正在尝试做的一个示例(请注意,此示例中有两个不同的客户 ID):
原始表
Row CustomerID Status Date
1 ABC 0 3/12/2013
2 ABC 0 3/31/2013
3 ABC 1 4/13/2013
4 ABC 1 4/15/2013
5 ABC 1 5/17/2013
6 ABC 0 6/25/2013
7 ABC 0 6/28/2013
8 XYZ 0 8/2/2013
9 XYZ 1 5/10/2013
10 XYZ 0 5/18/2013
11 XYZ 1 8/23/2013
12 XYZ 1 9/7/2013
所需的查询输出
Customer ID Status Date
ABC 1 4/13/2013
ABC 0 6/25/2013
XYZ 1 5/10/2013
XYZ 0 5/18/2013
XYZ 1 8/23/2013