我的table如下。我正在计算购买的天数
Visitorid date Purch_flag
A 1-May NULL
A 2-May NULL
A 3-May 1
B 1-May NULL
B 2-May 1
B 3-May NULL
B 4-May 1
C 1-May NULL
理想情况下,我想创建一个输出表如下,其中有开始和结束日期。对于同一个visitorid,购买后将有一个新的开始日期
Visitorid date Purch_flag start_date end_date
A 1-May NULL 1-May 3-May
A 2-May NULL 1-May 3-May
A 3-May 1 1-May 3-May
B 1-May NULL 1-May 2-May
B 2-May 1 1-May 2-May
B 3-May NULL 3-May 4-May
B 4-May 1 3-May 4-May
C 1-May NULL NULL NULL
1条答案
按热度按时间kh212irz1#
我想你可以用累积的
max()
以及min()
窗口功能:结束日期更容易解释。它是在给定记录上或之后进行购买的日期的最小值。
开始日期是在给定日期之前购买的日期的最大值。如果是的话
NULL
,则是访客的第一个日期。