推荐阅读文章列表大数据开发面经汇总【持续更新...】我的大数据学习之路大数据开发面试笔记V6.0SQL题目来自拼多多数据研发一面有一张用户行为日志表ods_usr_log, 包含用户id(user_id)和页面id(page_id)以及进入页面时间(in_ts)问题:统计每天进入A页面后,立刻进入B页面,又进入C页面的用户数【注意:进入C页面之前可能进入过其他页面】答案解析模拟数据insert into ods_usr_log(user_id, page_id, in_ts) values (1, 'A', '2020-1-1 12:01:03'),(2, 'A', '2020-1-1 12:01:04'),(3, 'A', '2020-1-1 12:01:05'),(1, 'B', '2020-1-1 12:03:03'),(1, 'A', '2020-1-1 12:04:03'),(1, 'C', '2020-1-1 12:06:03'),(1, 'D', '2020-1-1 12:11:03'),(2, 'A', '2020-1-1 12:07:04'),(3, 'C', '2020-1-1 12:02:05'),(2, 'C', '2020-1-1 12:09:03'),(2, 'A', '2020-1-1 12:10:03'),(4, 'A', '2020-1-1 12:01:03'),(4, 'C', '2020-1-1 12:11:05'),(4, 'D', '2020-1-1 12:15:05'),(1, 'A', '2020-1-2 12:01:03'),(2, 'A', '2020-1-2 12:01:04'),(3, 'A', '2020-1-2 12:01:05'),(1, 'B', '2020-1-2 12:03:03'),(1, 'A', '2020-1-2 12:04:03'),(1, 'C', '2020-1-2 12:06:03'),(2, 'A', '2020-1-2 12:07:04'),(3, 'B', '2020-1-2 12:08:05'),(3, 'E', '2020-1-2 12:09:05'),(3, 'D', '2020-1-2 12:11:05'),(2, 'C', '2020-1-2 12:09:03'),(4, 'E', '2020-1-2 12:05:03'),(4, 'B', '2020-1-2 12:06:03'),(4, 'E', '2020-1-2 12:07:03'),(2, 'A', '2020-1-2 12:10:03');思路分析需求拆解如下:要想求按照 A->B->C 序列的用户,就需要知道每个用户的行为路径这个不难求得,只需要将每个用户进入的页面按照进入时间进行concat即可那么如何保证A到B是直接到达的,并且B到C是可能间接到达的呢?显然可以使用正则匹配 like %A,B%C%具体代码select date(in_ts) as dt      ,count(distinct user_id) as cntfrom(    select user_id          ,in_ts          ,concat_ws(',',collect_set(page_id) over(partition by user_id order by in_ts)) as page_list    from ods_usr_log) twhere page_list like '%A,B%C%'group by date(in_ts);
点赞 9
评论 0
全部评论

相关推荐

白火同学:先说结论,准大三不是特别好找实习,boss沟通300+没有实习是很正常的情况。一是暑期实习时间太短了,二是在这么多准大四都找不到实习,从实习时间和掌握技术层面,企业会优先看他们。 再说简历,其实985本+准大三到这水平的简历也很优秀了,要说的话,项目经历可以再优化一下,可以基本围绕采取STAR原则,分为项目概述、技术架构、技术亮点、实现结果,再发给AI润色一下。 最后说操作,准大三的话,如果想找实习那就多投,不过现在也7月中旬了,时间上已经略晚了。如果7月底实在找不到,也可以多刷点算法,多学点技术,这实习也不至于一定得有,当然有更好。
点赞 评论 收藏
分享
熬夜冠军🏆:和你情况差不多,你这个HR算敞亮了,直白告诉你了,不浪费你时间,我的那个还跟我说没法说,只能等。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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