现有课程信息表 course_info_tb(cid:课程ID,tag:视频类别,release_date:发布日期,duration:视频时长),示例数据如下: id cid tag release_date duration 1 9001 sql 2022-01-01 60 2 9002 sql 2022-01-01 90 3 9003 sql 2022-01-01 45 4 9004 java 2022-01-02 45 用户观看记录表 play_record_tb(uid:用户ID,cid:课程ID,start_time:开始观看时间,end_time:结束观看时间,score:用户评分),示例数据如下: id uid cid start_time end_time score 1 1001 9001 2022-01-01 08:30:00 2022-01-01 09:00:00 4 2 1001 9001 2022-01-03 09:30:00 2022-01-03 10:20:00 2 3 1002 9001 2022-01-01 08:30:00 2022-01-01 09:40:00 3 4 1001 9002 2022-01-02 08:30:00 2022-01-02 09:01:00 2 5 1001 9002 2022-01-11 08:30:00 2022-01-11 08:31:01 3 6 1001 9002 2022-01-05 08:30:00 2022-01-05 08:54:01 2 7 1003 9002 2022-01-05 08:30:00 2022-01-05 08:51:01 4 请找到那些能让用户一遍接一遍重复观看的高回头率视频,输出被重复观看人次数。若某人对某视频只观看了一次,则不计为重复观看次数,如果某人对某视频观看了n次(n1),则记为该视频重复观看次数+n。如果被重复观看次数一样大,则越晚发布的视频排名越靠前,每个视频的排名为排在他前面的视频个数+1。请找出被重复观看数排名前三的视频,输出这些视频的课程ID、被重复观看次数和排名。结果按排名升序。若被重复观看视频不足三个,按排名全部输出。示例输出如下: cid pv rk 9002 3.000 1 9001 2.000 2
示例1

输入

drop table if exists course_info_tb;
CREATE TABLE course_info_tb (
    id INT auto_increment PRIMARY KEY,
    cid int NOT NULL COMMENT "课程ID",
    tag varchar(10) COMMENT "课程类别",
    release_date date COMMENT "发布日期", 
    duration INT COMMENT "视频时长(分钟)"
)ENGINE=innodb DEFAULT CHARSET=utf8;

INSERT INTO course_info_tb(cid, tag, release_date, duration) VALUES 
     (9001, 'sql', '2022-01-01', 60)
    ,(9002, 'sql', '2022-01-01', 90)
    ,(9003, 'sql', '2022-01-01', 45)
    ,(9004, 'java', '2022-01-02', 45)
;

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', 4)
    ,(1001, 9001, '2022-01-03 09:30:00', '2022-01-03 10:20:00', 2)
    ,(1002, 9001, '2022-01-01 08:30:00', '2022-01-01 09:40:00', 3)
    ,(1001, 9002, '2022-01-02 08:30:00', '2022-01-02 09:01:00', 2)
    ,(1001, 9002, '2022-01-11 08:30:00', '2022-01-11 08:31:01', 3)
    ,(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', 4)

输出

9002|3.000|1
9001|2.000|2
加载中...