题解 | 连续签到领金币

with a as (

select *,row_number() over(partition by uid,id-day(in_time) order by in_time) rn from tb_user_log

where sign_in=1 and where date(in_time) between '2021-07-07' and '2021-10-31'

select uid,DATE_FORMAT(in_time,'%Y%m') month,sum(case when rn%7=3 then 3 when  rn%7=0 then 7 else 1 end) coin

from a group by uid,month

order by month,uid;

全部评论

相关推荐

昨天 15:02
门头沟学院 Java
刚打开网申页面就不想填了,还是不要为难自己了
poppinzhan...:多益老行业毒瘤了,碰到徐波这种恶心的烂人,去了也是受罪。
点赞 评论 收藏
分享
07-17 11:27
门头沟学院 Java
点赞 评论 收藏
分享
写不来代码的小黑:这么小的城市能有做it的公司也不容易
点赞 评论 收藏
分享
鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务