广东菜心
广东菜心
全部文章
分类
题解(6)
归档
标签
去牛客网
登录
/
注册
广东菜心的博客
.
全部文章
(共6篇)
题解 | #未完成试卷数大于1的有效用户#
条件:2021年每个未完成试卷作答数大于1的有效用户的数据(有效用户指完成试卷作答数至少为1且未完成数小于5) 2021年用where where YEAR(start_time) = 2021 未完成试卷作答数:无submit_time或者无score。用if函数。 select su...
Mysql
2021-11-13
119
3755
题解 | #SQL类别高难度试卷得分的截断平均值#
开窗函数解法 看了别的大佬的题解才发现搞复杂了 思路:考虑到多个分数重复的情况,利用row_number() over()窗口函数对exam_id分区,对score分别进行顺序排列(t_rank1)和倒序排列(t_rank2)。 因为窗口函数不像max()和min()会自动忽略null值,所以要在...
Mysql
2021-11-04
11
794
题解 | #网易云音乐推荐(网易校招笔试真题)#
多表连接 + NOT IN解决 查询出user_id=1中关注的人喜欢的音乐。 select distinct m.music_name from follow f join music_likes ml on ml.user_id=f.follower_id join music ...
Mysql
2021-10-21
1
642
题解 | #商品交易(网易校招笔试真题)#
先对trans表中每个商品的购买数量的求和。 将trans表与goods表用商品id进行连接。 利用where语句进行筛选,并用id进行排序。 select g.id, g.name, g.weight,a.total from goods g join ( select ...
Mysql
2021-10-18
18
802
题解 | #获得积分最多的人(三)#
利用rank() over()求解 在最内层的a表中,用case when处理好加减法的情况,把用户的总积分算出来。出现'type=reduce'的情况就等于0-grade_num,把积分转换成负数。 在第中间层的b表中利用rank() over()对a表已经算好的积分进行降序排序。 将user表...
Mysql
2021-10-18
2
540
题解 | #获得积分最多的人(二)#
和第一题一样,建一个group by user的加好积分的临时积分表。 同时利用rank() over()直接对聚合函数sum(grade_num)进行排序。 将这个临时积分表与user表连接之后,取排名为1即可。 select u.id,u.name,t.grade_num from user ...
Mysql
2021-10-18
7
400