SQL笔试题:时间相关题目总结

从知乎上看的一系列题,感觉题主的思路很有启发,但是发现他的代码有点问题,所以自己再记录一下有错误的点。

1.求连续时间问题系列

原文地址:SQL笔试题(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,因为已经完成聚合了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值