哔哩哔哩数开Sql题

Emmmm虽然选择题全靠蒙,但对sql题还是挺好奇的,想问问大家这两题算难还是简单啊(非科班菜鸡刚学的心里没有B数)&&求第二题答案~

第一题我的答案先贴上(因为考试期间把partition位置给忘了,不是AC的答案,是后来百度完自己测试的),有大佬帮忙看看或者说交流一下查询的效率就更好啦,另外求第二题思路(有答案更好啦,感谢大佬)

第一题:给了用户的充值记录表,求各个用户充值次数最多的充值金额(也就是分档次充值了,同一档一个金额)和该金额的最后一次充值时间(希望我没记错)

表结构(我用的sql sever所以有些变动):
CREATE TABLE user_recharge(
id INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
userid INT NOT NULL, 
user_name VARCHAR(50) NOT NULL,
recharge DECIMAL(30, 4) NOT NULL DEFAULT '0',
ts DATETIME
)

要求输出:用户id,用户名,充值金额,充值次数,最后一次充值时间

我的答案:
SELECT ur.userid, ur.user_name, ur.recharge, recharge_cnt, max(ur.ts)
FROM user_recharge AS ur
LEFT JOIN
	(SELECT userid, recharge, recharge_cnt, RANK() OVER(PARTITION BY userid ORDER BY user_recharge_cnt.recharge_cnt DESC) as rnk
	 FROM
		(SELECT userid, recharge, COUNT(recharge) as recharge_cnt
		 FROM user_recharge
		 GROUP BY userid, recharge
		) AS user_recharge_cnt
	) AS user_recharge_max_cnt
ON ur.userid = user_recharge_max_cnt.userid
AND ur.recharge = user_recharge_max_cnt.recharge
WHERE rnk = 1
GROUP BY ur.userid, ur.user_name, ur.recharge, recharge_cnt

第二题题目:给了用户登录直播间的登录退出记录,以每三分钟为一个时间片,求2019-01-01这一天在线人数最多的时间片?(完了忽然想不起来题目,求大佬纠正,我之后改)

要求输出:开始时间,直播间id,在线人数(好像就这三个吧)

建表语句不记得了,字段大概是有用户id,直播间id,进入直播间的时间(time),退出直播间的时间,和日期


#笔试题目##哔哩哔哩#
全部评论
好复杂的sql啊
点赞 回复 分享
发布于 2021-03-18 18:56

相关推荐

不愿透露姓名的神秘牛友
2025-12-17 16:48
今天九点半到公司,我跟往常一样先扫了眼电脑,屁活儿没有。寻思着没事干,就去蹲了个厕所,回来摸出手机刷了会儿。结果老板刚好路过,拍了我一下说上班别玩手机,我吓得赶紧揣兜里。也就过了四十分钟吧,我的直属领导把我叫到小隔间,上来就给我一句:“你玩手机这事儿把老板惹毛了,说白了,你可以重新找工作了,等下 HR 会来跟你谈。” 我当时脑子直接宕机,一句话都没憋出来。后面 HR 找我谈话,直属领导也在旁边。HR 说我这毛病不是一次两次了,属于屡教不改,不光上班玩手机,还用公司电脑看论文、弄学校的事儿。我当时人都傻了,上班摸鱼是不对,可我都是闲得发慌的时候才摸啊!而且玩手机这事儿,从来没人跟我说过后果这么严重,更没人告诉我在公司学个习也算犯错!连一次口头提醒都没有,哪儿来的屡教不改啊?更让我膈应的是,昨天部门刚开了会,说四个实习生里留一个转正,让大家好好表现。结果今天我就因为玩手机被开了。但搞笑的是,开会前直属领导就把我叫去小会议室,明明白白告诉我:“转正这事儿你就别想了,你的学历达不到我们部门要求,当初招你进来也没打算给你这个机会。”合着我没入贵厂的眼是吧?可我都已经被排除在转正名单外了,摸个鱼至于直接把我开了吗?真的太离谱了!
rush$0522:转正名单没进,大概率本来就没打算留你
摸鱼被leader发现了...
点赞 评论 收藏
分享
评论
1
14
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务