2022-04-11 14:16
集美大学 数据分析师 盐咸咸:先关联两张表,定义清楚折扣率,计算即可。有个小坑:根据题意,得出的结果要*100,字段的命名使用字符串命名。
0 点赞 评论 收藏
分享
2022-04-11 12:18
集美大学 数据分析师 牛客31815074...:请问【状态1:司机接单前取消,则没有生成order_id,这种情况 order_id IS NULL 记录end_time 状态2:司机接单后取消,则没有上车时间,start_time IS NULL 记录 finish_time 状态3:正常上车,记录start_time,start_time IS NOT NULL】这三种状态是怎么解读出来的呢,我看牛客的题好像总是这样模棱两可让我看不明白
0 点赞 评论 收藏
分享
2022-04-08 18:32
集美大学 数据分析师 0 点赞 评论 收藏
分享
2022-03-25 21:13
集美大学 数据分析师 牛客39693467...:不知道看了多少道题的解析了,一开始只是随便找能看懂的大佬的看,后来发现我每一道不会的题的题解里都有你的头像,到现在我翻解析习惯的先去找你的头像,您的解析写的真的很好很好,每次我看完总是会感慨“好像没自己想象中的那么难呢”(即便自己还是做不太出来)感谢!已经习惯每天看你解析的每一天~
0 点赞 评论 收藏
分享
2022-03-25 16:05
集美大学 数据分析师 牛客66476129...:ROUND(SUM(IF(dt=new_dt,1,0))/COUNT(1),2) 可以直接改成 ROUND(avg(dt=new_dt),2) ,能省掉if和count
0 点赞 评论 收藏
分享
2022-03-25 15:37
集美大学 数据分析师 0 点赞 评论 收藏
分享
Forwardsum...:第二种方法没过的,试试下面的方法,和楼主的第二种方法一样的思想,纯窗口函数: select dt,round(sum(if(timestampdiff(day,dt,lead_time)=1,1,0))/count(*),2) from( select *, row_number() over(partition by uid order by dt) rk, lead(dt,1) over(partition by uid order by dt) lead_time from( select uid,date(in_time) as dt from tb_user_log union select uid,date(out_time) as dt from tb_user_log )t1 )t2 where rk = 1 group by dt having date_format(dt,'%Y-%m') = '2021-11' order by dt 这里引用Cole4Youreyez用户的结论: “该题有一个易错点,那就是题目中第一句话就说明了在十一月份的,可能做题人会考虑在建立表t时就直接where语句选出11月的,这样是错误的。 原因在于:在建立表t是where会先运行,也就是选择了11月的信息再进行排序。那么如果一个用户10月活跃过,在11月中,11月2号和3号活跃了,这样的操作会使得该用户11-02的排名rk=1,也会被我们认为是新用户,但是显然并非如此。”
0 点赞 评论 收藏
分享
2022-03-22 19:46
集美大学 数据分析师 0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: