风雪行
风雪行
全部文章
分类
题解(11)
归档
标签
去牛客网
登录
/
注册
风雪行的博客
全部文章
(共35篇)
题解 | #每个创作者每月的涨粉率及截止当前的总粉丝量#
计算2021年里每个创作者每月的涨粉率及截止当月的总粉丝量 截止当月的总粉丝量, 虽然在在where 条件中过滤2021年的数据, 但是在2021年之前如果有粉丝的话, 那么该计算方式就是只能计算2021年截止当月的累计粉丝量 窗口函数sum() over()的使用, partition by 表...
Mysql
Oracle
Sqlite
2022-06-11
6
389
题解 | #每类视频近一个月的转发量/率#
关于本题, 其实没有啥难度, 关键在于他对近一个月的转发量, 中一个月定义不清晰 开始我想的是 start_time >= date_sub(now(), interval 30 day), 但是一看测试用例发现行不通, 必须以题目提供的最大观看时间往前推一个月 select vi.tag, ...
Mysql
Oracle
2022-06-11
2
231
题解 | #平均播放进度大于60%的视频类别#
平均播放进度大于60%的视频类别: 开始想了半天, 代码也写出来了, 但是测试用例死活就是通过不了 select vi.tag, concat(round(avg( if((vl.end_time - vl.start_time) > vi.duration, 1, (v...
Mysql
Oracle
2022-06-09
9
921
题解 | #各个视频的平均完播率#
1. 注意点: timestampdiff(format, start, end) format为second, day, hour...都行, 2. 直接时间相减, 个人感觉不太严谨. 尽量避免直接使用时间加减, 容易出问题 select uv.video_id, round(sum(if...
Mysql
Oracle
2022-06-08
5
357
题解 | #浙大不同难度题目的正确率#
浙江大学不同难度题目正确率 分析: 浙江大学, 不同难度, 正确率; 题目只需要浙江大学的, 所以可以连表后直接在where中进行过滤, 不同难度正确率,根据难度分组, 该难度答对的题数/该难度总题数即可 if(qpd.result='right', 1, 0)这样其实代码更简洁, 但是个人...
Mysql
Oracle
2022-06-07
3
269
题解 | #统计复旦用户8月练题情况#
题意: 统计复旦8月练题情况 注意点: 如果直接用left join question_practice_detail 后在where中进行过滤month(qpd.date)=8, 则学生信息中,只要8月份没有答题的也会被过滤掉 可以使用 left join question_practice_d...
Mysql
Oracle
2022-06-07
4
206
题解 | #统计每个学校的答过题的用户的平均答题数#
常规题 需要注意的地方: 只能用 question_practice_detail 连接 user_profile 表, 因为存在用户表不一定有答题记录的情况 select up.university, count(1) / count(distinct qpd.device_id...
Mysql
Oracle
2022-06-07
3
190
题解 | #浙江大学用户题目回答情况#
因为涉及到SQL优化的问题, 所以具体列出来 方法一: 先用user_profile连接question_practice_detail然后再where进行过滤, 最后排序即可 select up.device_id, ...
面经
MySQL
数据分析师
面试题目
2022-05-31
7
461
题解 | #计算男生人数以及平均GPA#
select # 这里用distinct 排除重复device_id情况 count(distinct device_id) as male_num, avg(gpa) as avg_gpa from u...
MySQL
数据分析工程师
2022-05-31
2
316
题解 | #注册当天就完成了试卷的名单第三页#
注意: 是找工作为算法的, 在注册当天完成算法试卷的人, 按所有考试得分的最高分排名, 这是个易错点, 直接根据 job='算法', tag='算法', 过滤score列会得到算法考试的最高分, 而不是所有考试的最高分. select aa.uid, aa.level, aa.reg...
Mysql
2021-11-26
4
278
首页
上一页
1
2
3
4
下一页
末页