Ding_123
Ding_123
全部文章
题解
归档
标签
去牛客网
登录
/
注册
Ding
全部文章
/ 题解
(共84篇)
题解 | #平均播放进度大于60%的视频类别#
待编辑 代码 select tag, concat(round( avg( if(timestampdiff(second,start_time,end_time) > duration, ...
Mysql
2022-01-26
0
312
题解 | #各个视频的平均完播率#
知识点 结果需要两个表中的数据,进行内连接 筛选2021年的数据,使用DATE_FORMAT(date,format) = 2021函数用于以不同的格式显示日期/时间数据,4位显示用"%Y"。 计算完播率,首先使用group by进行分组,使用avg(all|distinct expression...
Mysql
2022-01-26
0
392
题解 | #网易云音乐推荐(网易校招笔试真题)#
知识点 使用子查询首先推荐用户1关注的人就是follow表user_id=1的follower_id 之后音乐不能是用户1听过的,就是music_id not in(music_likes表里面user_id = 1) 最后再把music表连接一下,music_name不要重复再加个distinc...
Mysql
2021-12-10
2
526
题解 | #商品交易(网易校招笔试真题)#
知识点 首先把两个表连接,使用group by进行分组各类返回一行。 筛选条件使用having进行筛选最后对id进行排序。 代码 select g.id, name, weight, sum(count) as total from trans as t join goods as g on t...
Mysql
2021-12-10
6
787
题解 | #获得积分最多的人(三)#
知识点 和上一题代码思路一模一样就是求和的时候使用case when函数,当type是reduce的时候是grade_num*-1否则就是grade_num,其他都一样。 代码 with a as( select distinct u.id,u.name, ...
Mysql
2021-12-10
3
464
题解 | #获得积分最多的人(二)#
知识点 创建一个临时表with 表名 as 使用窗口函数分组计算积分总和,因为会出现相同的用户行所以查询时使用distinct u.id 最后筛选条件就是积分=表中最大的积分,按照id升序排序 代码 with a as( select distinct u.id,u.name...
Mysql
2021-12-10
1
382
题解 | #获得积分最多的人(一)#
知识点 首先使用窗口函数求和建立一个新表,按照数量降序排序第一个就是所求,之后再连接user表。 代码 select u.name, t.grade_sum from (select user_id, sum(grade_num) over(partition by user_id ) as ...
Mysql
2021-12-09
1
377
题解 | #最差是第几名(二)#
知识点 先计算出总共有多少名,使用窗口按照grade正序排序求和为一列,同理使用按照grade逆序求和 中位数就是正序列>= 总共/2,以及逆序列>=总共/2,两者之间的交集就是中位数 代码 select grade from (select grade, ...
Mysql
2021-12-09
1
322
题解 | #最差是第几名(一)#
知识点 使用窗函数对grade进行分组然后,使用sum() over (order by ) 开窗函数,sum(a) over (order by b) 的含义是:按照b列排序,将a依次相加 代码 select grade, sum(number) over(order by grade) as...
Mysql
2021-12-09
2
496
题解 | #实习广场投递简历分析(三)#
知识点 建立两个表,使用岗位和月份进行连接 第一个表是2025年的表,按照岗位和月份进行分组,最后求和。第二个表是2026年的表格式相同,将两个进行连接。 相同月分就是使用right()最后两个数字相同。right(s,n)函数返回字符串s最右边的n个字符 代码 select r1.job, f...
Mysql
2021-12-09
1
385
首页
上一页
1
2
3
4
5
6
7
8
9
下一页
末页