数据如下:
c1,c2,c3,c4
userA,locationA,2018-01-01 08:00:00,60
userA,locationA,2018-01-01 09:00:00,60
userA,locationB,2018-01-01 10:00:00,60
userA,locationA,2018-01-01 11:00:00,60
目标:
userA,locationA,2018-01-01 08:00:00,120
userA,locationB,2018-01-01 10:00:00,60
userA,locationA,2018-01-01 11:00:00,60
读了题我就想到了求连续活跃天数,感觉有点像。这种题的关键是——构造出分组的字段。
第一步,观察结果,就想到用开窗函数,因为c3,就是同一分组中的最小值,c4就是同一分组的c4的和。
第二步,构造分组字段,应该是c1+c2+区分同一用户同一位置的一个字段,注意不是c1+c2,不能把第1,2,4条记录分到一个组里
构造过程:
userA,locationA,2018-01-01 08:00:00,60,1,1,0
userA,locationA,2018-01-01 09:00:00,60,2,2,0
userA,locationB,2018-01-01 10:00:00,60,3,1,2
userA,locationA,2018-01-01 11:00:00,60,4,3,1
$$$$$$$$$$
上面的例子数据有点少,加一些数据
A B 8 60 1 1