题解 | #牛客直播各科目同时在线人数#

牛客直播各科目同时在线人数

http://www.nowcoder.com/practice/d69677e41f9a4bf3b3ed7a42573e9490

分别对进入时间和离开时间编码为1和-1,以课程作为分割条件对时间排序求和,然后选出其中的最大值即可。

SELECT course_id, course_name, MAX(cnt) AS max_num
FROM
(
	SELECT course_id, course_name, det, SUM(det) OVER(PARTITION BY course_id ORDER BY dt) AS cnt
	FROM
	(
		SELECT course_id, in_datetime AS dt, 1 AS det
		FROM attend_tb
		UNION ALL
		SELECT course_id, out_datetime AS dt, -1 AS det
		FROM attend_tb
	) AS t1
	JOIN course_tb c USING (course_id)
) AS t2
GROUP BY course_id, course_name
ORDER BY course_id
全部评论

相关推荐

01-15 13:45
门头沟学院 Java
牛客92772631...:boss招聘挂岗位是要花钱的,花了钱不挂白不挂,别那么焦虑,但是也要做好跳槽的准备
找实习记录
点赞 评论 收藏
分享
02-16 01:39
南昌大学 Java
重剑Ds:感觉不太可能 后端都减飞了 根本不缺人
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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