模拟的实际数据:注意红框中存在时间不连续的情况。
第一题的解法:
首先判断@temp_id = user_id (即上一条数据的user_id =当前数据的user_id)是否相同,如果不同,days子弹的值等于attend,即如果签到,就是1,如果不签到就是0 ; 如果相同,在判断attend字段,如果attend = 0,则days重置为0,如果attend = 1,继续判断两个日期间隔是否为1,如果间隔为1,则num自增1,如果间隔不是1天,则num = 1(因为此时attend = 1).
SELECT user_id,date,attend,IF(@temp_id =