网易互娱 数分笔试 SQL题

A了两题,还有一个没写
第一题
select
count(a.role_id),
round(avg(match_cnt), 4),
count(case when b.role_id is not null then b.role_id end),
round(avg(case when b.role_id is not null then b.battle end), 4)
from
(
select
role_id,
count(1) as match_cnt
from
success
group by
role_id
) a
left join
(
select
role_id,
count(1) as battle_cnt
from
battle
group by
role_id
) b
on a.role_id = b.role_id

第二题
select
a.new_rank,
count(distinct a.role_id)
from
(
select
role_id,
new_rank,
t_when
) a
left join
(
select
role_id,
max(t_when) as tw
from
battle
group by
role_id
) b
on a.role_id = b.role_id
and a.t_when = b.tw

where
b.role_id is not null
group by
a.new_rank

#网易互娱##笔试题目##数据分析工程师#
全部评论
大佬求问选择那道抽ssr是什么鬼,为啥10%出要抽这么多次
点赞 回复 分享
发布于 2020-09-05 17:00
第三题我自己的想法……但是完全没通过不知道哪里错了 select s2.match_rank,round(avg(s2.match_time),4),max(s2.match_time) from ( select s.old_rank match_rank,strftime('%s&(9515)#39;,s.matcht)-strftime('%s&(9515)#39;,s.startt) match_time from (select t.t_when,max(t.tole_id) role_id,max(t.old_rank) old_rank,max(t1.t_when) matcht,max(t2.t_when) startt from (select t_when,tole_id,old_rank from battle_result) t join success_match t1 on t.tole_id=t1.role_id and t1.t_when<t.t_when join start_match t2 on t.tole_id=t2.role_id and t2.t_when<t.t_when group by t.t_when) s) s2 group by s2.match_rank
点赞 回复 分享
发布于 2020-09-05 17:12
请问大佬可以分享一下选择题大概考了些什么吗
点赞 回复 分享
发布于 2020-09-05 21:07

相关推荐

9 23 评论
分享
牛客网
牛客企业服务