我们有一个记录表play_record_tb记录了用户观看记录,字段的意义如下 uid:用户id cid:视频id start_time,end_time:用户开始和结束的观看时间 score:用户打分 请统计视频的播放量最大值,输出最大值top3高的视频信息,结果按照最大值由高到低排序,保留3位小数。 视频9001在2022-01-01 08:31:00这个时刻有序号1和4的记录正在播放,最大值为2; 视频9002在2022-01-05 08:31:00这个时刻有序号7和8的记录正在播放,最大为2; 视频9003在2022-01-04 08:31:00这个时刻有序号5的记录正在播放,最大为1。
示例1

输入

drop table if exists play_record_tb;
CREATE TABLE play_record_tb (
    id INT auto_increment PRIMARY KEY,
    uid INT NOT NULL COMMENT "用户ID",
    cid INT NOT NULL COMMENT "课程ID",
    start_time datetime COMMENT "开始观看时间", 
    end_time datetime COMMENT "结束观看时间",
    score TINYINT COMMENT "用户评分"
)ENGINE=innodb DEFAULT CHARSET=utf8;

INSERT INTO play_record_tb(uid, cid, start_time, end_time, score) VALUES 
     (1001, 9001, '2022-01-01 08:30:00', '2022-01-01 09:00:00', 5)
    ,(1001, 9002, '2022-01-02 08:30:00', '2022-01-02 09:01:00', 4)
    ,(1001, 9001, '2022-01-03 09:30:00', '2022-01-03 10:20:00', 5)
    ,(1002, 9001, '2022-01-01 08:30:00', '2022-01-01 09:00:00', 3)
    ,(1001, 9003, '2022-01-04 08:30:10', '2022-01-04 08:51:09', 5)
    ,(1002, 9002, '2022-01-11 08:30:00', '2022-01-11 08:31:01', 5)
    ,(1001, 9002, '2022-01-05 08:30:00', '2022-01-05 08:54:01', 2)
    ,(1003, 9002, '2022-01-05 08:30:00', '2022-01-05 08:51:01', 3)
    ,(1003, 9004, '2022-01-06 08:30:00', '2022-01-06 08:41:01', 3)
;

输出

9001|2.000
9002|2.000
9003|1.000
加载中...