从知乎上看的一系列题,感觉题主的思路很有启发,但是发现他的代码有点问题,所以自己再记录一下有错误的点。
1.求连续时间问题系列
1.1 求每个用户一周内最大连续活跃天数
这里原答案用的是date_sub函数,但是该函数必须指定时间相减的单位,按题主这样写是错的。要么完整填写(interval n type),要么用subDate函数。
当然题主的思路非常正确,其实相当于只要是连续登陆的,那么运算出来的日期结果就是一样的。
1.2 求截至当前已连续签到的天数
注意datediff函数是前减后,timestampdiff是后减前。更多参数可看这篇文章:
MySql计算两个日期的时间差函数
2.求时间间隔问题
原文链接:SQL笔试题(2):求时间间隔问题(必考难题)
这里原文用的是row_number排序后做自连接,但是我考虑也可以用lead函数直接找到最近一次的时间。
3. 时间相关题目(难题解析)
原文链接:SQL笔试题(3):时间相关题目(难题解析)
例题3的最后,最后一层select不应该加user_id,因为已经完成聚合了。
695

被折叠的 条评论
为什么被折叠?



