题解 | #某宝店铺连续2天及以上购物的用户及其对应的天数#

某宝店铺连续2天及以上购物的用户及其对应的天数

http://www.nowcoder.com/practice/63ac3be0e4b44cce8dd2619d2236c3bf

想要一张这样的表:

alt

按照不同消费者的消费日期排序,同一天则序号相同,第二天开始记为2,以此类推;连续标识用来判别消费的第“2,3,4,5……”天是不是连续的,因此当ranking大于1且连续标识等于1时,说明这一条记录是符合条件的uid和rank,最后从中取出连续标识为1的最大的ranking即可

select user_id,
	   max(ranking) as 连续天数
       from
(select user_id,sales_date,dense_rank() over(partition by user_id order by sales_date) as ranking,
	   case when datediff(t1.sales_date,(select max(sales_date) from sales_tb where sales_tb.sales_date < t1.sales_date and sales_tb.user_id = t1.user_id)) = 1 then 1 else 0 end as 连续标识
	   from sales_tb t1) a
       where ranking >= 2 and 连续标识 = 1
       group by user_id
       order by user_id;
       

全部评论

相关推荐

不愿透露姓名的神秘牛友
08-20 19:41
那一天的Java_J...:简历完全流水账,学生思维很严重,还有很大的优化空间,可以多看看牛客的简历。
点赞 评论 收藏
分享
Hyh_111:像这种hr就不用管了,基本没啥实力,换一个吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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