今天来解一道题面试中可能经常会被一些面试官拿来“刁难”的题,就是《如何统计连续打卡天数》,当然了这里面的打卡可以换成任意其他行为,比如连续登陆天数,连续学习天数,连续购买天数,这里的天数也是可以换成小时或者别的时间单位的。这个问题的逻辑还是有点复杂,如果要是之前没遇到过这种问题,当场被问到的时候,肯定会一脸懵。
直接来看实战,现在有一张表t,这张表存储了每个员工每天的打卡情况,现在需要统计截止目前每个员工的连续打卡天数,表t如下表所示:uidtdateis_flag12020/2/11
12020/2/20
12020/2/31
12020/2/41
12020/2/50
12020/2/61
12020/2/71
12020/2/81
22020/2/11
22020/2/20
22020/2/30
22020/2/41
22020/2/51
22020/2/61
22020/2/71
22020/2/81
上表中uid是用户id,tdate是日期,is_flag是记录用户当天是否打卡,1为打卡,0为未打卡。
我们希望得到的结果为:uidflag_days13
25
这个