数据分析面经-sql相关(题目来源于牛客面经分享和个人经历)

数据表view_log(网络访问日志),有三个字段分别是user_id(用户ID)、log_date(访问日期)、url(网址),请找出今年7月份连续三天访问牛客网站的用户

用了窗口函数和lead函数(偏移函数,根据日期排序后再偏移可以直接得到下一天的日期),窗口函数的使用可参考牛客SQL184,只要求连续三天访问的,如果需要三天以上需要更改筛选条件

WITH daily_visits AS ( SELECT user_id, log_date, LEAD(log_date, 1) OVER (PARTITION BY user_id ORDER BY log_date) AS next_day, LEAD(log_date, 2) OVER (PARTITION BY user_id ORDER BY log_date) AS next_next_day FROM view_log WHERE url LIKE '%牛客网%' AND log_date BETWEEN '2024-07-01' AND '2024-07-31' ) SELECT DISTINCT user_id FROM daily_visits WHERE DATEDIFF(next_day, log_date) = 1 AND DATEDIFF(next_next_day, log_date) = 2;

给出id,score,如何实现按score排序且有排名,不准使用开窗函数

使用mysql特有的临时变量,:=是赋值运算符,每查询完一行后,rank排名就+1(是不是很像循环遍历)

-- 创建一个临时变量来计数排名 SET @rank = 0; -- 先按照 score 排序,然后在查询中逐行分配排名 SELECT (@rank := @rank + 1) AS rank, id, score FROM your_table ORDER BY score DESC;

示例:

一个表三列分别是:id,顾客的问题,对问题的回答。获得顾客问的最多的10个问题和每个顾客问的最多的10个问题?

顾客问的最多的10个问题(简单问题)

SELECT customer_question, COUNT(*) AS question_count

FROM customer_questions

GROUP BY customer_question

ORDER BY question_count DESC

LIMIT 10

每个顾客问的最多的10个问题(使用了 ROW_NUMBER() 窗口函数,按照顾客 id 分组,统计每个顾客问每个问题的次数,并根据次数降序排列。然后,我们选择每个顾客排名前 10 的问题。这样可以确保每个顾客都能看到他们自己问得最多的问题列表,而不是所有顾客共同的前 10 个问题。)

WITH RankedQuestions AS (

SELECT

id,

customer_question,

COUNT(*) AS question_count,

ROW_NUMBER() OVER(PARTITION BY id ORDER BY COUNT(*) DESC) AS rank

FROM customer_questions

GROUP BY id, customer_question

)

SELECT id, customer_question, question_count

FROM RankedQuestions

WHERE rank <= 10;

#数据分析面经#
全部评论

相关推荐

牛客100866号技...:把电科加粗,把电科加粗,把电科加粗,两个吊车尾的项目合并成一个,再加一个管理系统。电科✌🏻在成都面中厂手拿把掐
点赞 评论 收藏
分享
头像
04-27 15:11
已编辑
华东师范大学 算法工程师
暑期实习从2月开始投,面了两个月,流程该挂的都挂完了,腾讯字节一共号称是1.7w个hc,不知道都发给谁了,估计今年秋招要难顶。Timeline米哈游、美团、蚂蚁、微软等公司直接简历挂穿,没进面。携程:3.3&nbsp;投递、测评3.12&nbsp;笔试3.18&nbsp;一面3.25&nbsp;二面4.13&nbsp;ai面(hr面)4.14&nbsp;英语测评4.23&nbsp;offer(已拒)腾讯:2.6&nbsp;测评2.28&nbsp;wxg一面3.5&nbsp;wxg二面(挂)3.11&nbsp;teg一面3.21&nbsp;teg二面(取消)3.31&nbsp;teg一面4.10&nbsp;teg二面(挂)4.21&nbsp;wxg一面4.24&nbsp;wxg二面(挂)字节:1.28&nbsp;aml约面(取消)3.17&nbsp;火山一面(挂)4.8&nbsp;aml一面(挂)4.20&nbsp;抖音data一面(挂)阿里:3.23&nbsp;投递、测评3.28&nbsp;笔试3.31&nbsp;淘天一面4.8&nbsp;钉钉一面4.9&nbsp;淘天二面4.10&nbsp;阿里控股一面4.12&nbsp;钉钉二面(取消)4.15&nbsp;淘天hr面4.16&nbsp;淘天offer(已接)4.21&nbsp;高德一面(取消)4.22&nbsp;淘宝闪购一面(取消)面试最大的感触是,现在撞上ai转型,一堆老业务急着转向,新业务非常不成熟,研究型的组bar非常高根本进不去,业务侧挂着算法的岗位干的都是工程活,面试却又要问算法,另外agent的落地也远没有那么广,绝大多数还是那套写死的系统调一下llm&nbsp;api或者做做rag,其余少部分真的在搭agent的,基本不能在线上服务用什么很智能的模型,现阶段成本太高,进去大概率就是给垃圾模型从工程方面兜底,除了业务场景的应用和数据经验以外,技术方面很难有什么提升。算法岗做不了基模的还是去搜广推好,之前判断失误了完全没投,秋招不知道还进不进得去。
嵌入式的小白:不错啊,淘天也是挺好的,恭喜
我的求职进度条
点赞 评论 收藏
分享
评论
2
17
分享

创作者周榜

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