SQL-4
16、找出每个用户得分最高的视频,得分相同时按照视频id选择最大的(原:找出每个用户哪一类型得分最高的视频,视频相同时按照视频id选择最大的)(快手)
参考答案
表a:uid:用户id;aid:视频id;score:得分
select uid, aid, score
from
(select uid, aid, score, row_number() over(partition by uid order by score desc, aid desc) as rk
from a) t
where rk = 1
17、找出开播三分钟内无人进入的直播房间号(快手)
参考答案
主播表a:upid:主播id;rid:直播间id;stime:开播时间
观众表b:uid:观众id;rid:进入的直播间id;intime:进入时间
select a.upid, a.rid from a left join b on a.rid = b.rid and a.stime < dateadd(minute,-3,b.intime) where b.uid is null
18、sql window function/ full join(字节跳动)
参考答案
1) window function
SQL中常用的窗口函数基本语法如下,常用的窗口函数有排序和聚合两类函数:
<窗口函数> over (partition by <用于分组的字段> order by <用于排序的字段>)
假设现有学生的分数表scores:
A. 排序函数
rank、dense_rank、row_number都是排序函数,但是排序的机制不一样,当排序中存在相同的值时会出现不同的排序结果,根据以下查询方式:
SELECT * , row_number() over(order by score desc) AS row_seq , rank() over(order by score desc) AS rank_seq
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
数据分析面试宝典 文章被收录于专栏
本面试宝典均来自校招面试题目大数据进行的整理
查看3道真题和解析