great、DY
great、DY
全部文章
分类
题解(13)
归档
标签
去牛客网
登录
/
注册
great、DY的博客
全部文章
(共15篇)
题解 | #最差是第几名(二)#
select grade from( select grade, #本等级第一名排名=上一等级最后一名排名+1,A等级为1 if(t_rank_last is null,1,t_rank_last+1) t_rank_min, t_rank_max, #中位数...
Mysql
2022-03-20
0
279
题解 | #网易云音乐推荐(网易校招笔试真题)#
select round(count(t2.user_id)/count(t1.user_id),3) from (select user_id,min(date) first_date from login group by user_id) t1 left join login ...
Mysql
2022-03-12
0
257
题解 | #连续签到领金币#
这题可谓是非常高质量了!! 大家如果刚开始不会可以先去做SQL29 里面有连续天数的计算方法!!!!(强烈推荐) 1.我们只要先排序,再将日期减去排序值就可以得到第一天连续打卡的时间,从而解决打断的问题。tmp表是得到排序数,base表是减去排序值。 2.之后我们根据 用户 和 每个阶段连续打卡的第...
Mysql
2021-12-21
36
1758
利用SUM窗口函数找到同一时刻内的最大计数
时间:37ms 内存:6384KB 本题需求不难理解,难点在于如何计算瞬时的最大计数(在看人数) 首先,我们自然会想到常见的编码+联立。在此对原表in_time和out_time进行编码,in为观看人数+1, out为观看人数-1,进行两次SELECT联立,并按artical_id升序,时间戳升序:...
Mysql
2021-12-02
397
10018
题解 | #牛客每个人最近的登录日期(六)#
一看到组内累计求和就考虑用开窗函数 select u.name u_n,date,sum(number) over(partition by user_id order by date) ps_num from passing_number p left join user u on p.user_...
Mysql
2021-10-14
1
378
题解 | #牛客每个人最近的登录日期(四)#
对用户开窗函数,组内对date排序,date_rank=1的为当日新用户 再对date分组,聚合函数求和,date_rank=1的计为1,其它计为0 select t.date,sum(if(t.date_rank=1,1,0)) new from ( select user_id,date,ra...
Mysql
2021-10-14
2
366
题解 | #牛客每个人最近的登录日期(三)#
思路:想知道第一次登陆后,第二天登陆和没登陆的客户数。 1,以用户ID分组,聚合函数出每个用户第一次登陆的日期,用并dateadd函数求出第二天的日期,此表为t1 2,t1表与原表(t2)连接,只连接登陆日期为第二天的 3,第二天登陆的有连接上t2.userid和date,第二天没有登陆的id和d...
Mysql
2021-10-14
1
420
题解 | #牛客每个人最近的登录日期(二)#
1 用开窗函数在各分组内以日期降序排名, 2 连接用户表和设备表, 3 where筛选第1步中排名为1的行,就是各分组中日期最晚的行数据 select user.name u_n,client.name c_n,t.date from (select user_id,client_id,date,...
Mysql
2021-10-14
7
436
题解 | #获得积分最多的人(二)#
select t.id,t.name,t.grade_sum from ( select id,name,sum(grade_num) as grade_sum,rank() over (order by sum(grade_num) desc) as rank_sum from grade_inf...
Mysql
2021-10-13
0
358
题解 | #牛客的课程订单分析(七)#
'3,以来源分组,聚合函数count求订单数cnt select t2.source,count(source) cnt from( '2,筛选出购买2单及以上的用户的数据行,再加来源列,将拼单行设为GroupBuy select t1.*,if(t1.is_group_buy='...
Mysql
2021-10-11
1
436
首页
上一页
1
2
下一页
末页