现有课程信息表course_info_tb(cid 课程ID, tag 视频类别, release_date 发布日期, duration 视频时长(分钟)),示例数据如下: 用户观看记录表play_record_tb(uid 用户ID, cid 课程ID, start_time 开始观看时间, end_time 结束观看时间, score 用户评分),示例数据如下: 请找到最受欢迎的top3课程,受欢迎定义为:必须是平均评分不低于3,发布后一周内被观看次数越大越受欢迎。如果观看量一样大,则被播放总时长越长越受欢迎,输出课程ID、观看量和总时长(单位:分钟)。按受欢迎程度由高到低排序。若受欢迎课程不大于3个,按照受欢迎程度由高到低排序全部输出即可。示例输出如下:
示例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, 'c++', '2022-01-01', 60)
    ,(9002, 'python', '2022-01-01', 90)
    ,(9003, 'sql', '2022-01-01', 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', 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)

输出

9001|3|110.000
9002|1|31.000
加载中...