求大佬帮忙指导一下SQL题目解题思路和答案,谢谢!

各位大佬,请帮忙解答一下,并教我一下解题思路,感谢!!!!!!!!!

表名:author_tb,answer_tb
字段:
author_tb表
创作者信息表
author_id
创作者编号
autor_level
创作者级别,共1-6*六个级别
sex
作者性别

answer_tb表
回答情况表
answer_date
创作日期
author_id
创作者编号
issue_id
问题编号
char_len
回答字数


需求:统计最大连续回答问题的天数大于等于3天的用户及其等级(若有多条符合条件的数据,按author_id升序排序)
#SQL面试##学习路径#
全部评论
select author_id,author_level from author_tb where author_id in (select author_id from answer_tb group by author_id having count(distinct answer_date )>=3);
1
送花
回复
分享
发布于 2022-03-02 15:00
最大连续天数的问题,可以用窗口函数dense_rank() over(partition by author_id order by answer_date) as rk 排序,然后date_sub(answer_date, interval rk day) as date将回答日期与rk相减,得到的日期如果相同,就是连续的。最后统计相同的日期数date,得出的个数就是连续天数了
点赞
送花
回复
分享
发布于 2022-03-07 16:24
滴滴
校招火热招聘中
官网直投
根据日期进行order by,然后给日期排个序,将排序结果和日期做差,然后根据结果group by,having出大于3的就行了
点赞
送花
回复
分享
发布于 2022-03-28 15:33

相关推荐

头像
不愿透露姓名的神秘牛友
05-14 18:44
点赞 评论 收藏
转发
2 8 评论
分享
牛客网
牛客企业服务