2022-05-24
閱讀量:
552
sql計算視頻完播率
1 計算視頻完播率
2,對應sql 代碼與答案
create database test002; use test002; DROP TABLE IF EXISTS tb_user_video_log, tb_video_info; CREATE TABLE tb_user_video_log ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID', uid INT NOT NULL COMMENT '用戶ID', video_id INT NOT NULL COMMENT '視頻ID', start_time datetime COMMENT '開始觀看時間', end_time datetime COMMENT '結束觀看時間', if_follow TINYINT COMMENT '是否關注', if_like TINYINT COMMENT '是否點贊', if_retweet TINYINT COMMENT '是否轉發(fā)', comment_id INT COMMENT '評論ID' ) CHARACTER SET utf8 COLLATE utf8_bin; CREATE TABLE tb_video_info ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID', video_id INT UNIQUE NOT NULL COMMENT '視頻ID', author INT NOT NULL COMMENT '創(chuàng)作者ID', tag VARCHAR(16) NOT NULL COMMENT '類別標簽', duration INT NOT NULL COMMENT '視頻時長(秒數(shù))', release_time datetime NOT NULL COMMENT '發(fā)布時間' )CHARACTER SET utf8 COLLATE utf8_bin; INSERT INTO tb_user_video_log(uid, video_id, start_time, end_time, if_follow, if_like, if_retweet, comment_id) VALUES (101, 2001, '2021-10-01 10:00:00', '2021-10-01 10:00:30', 0, 1, 1, null), (102, 2001, '2021-10-01 10:00:00', '2021-10-01 10:00:24', 0, 0, 1, null), (103, 2001, '2021-10-01 11:00:00', '2021-10-01 11:00:34', 0, 1, 0, 1732526), (101, 2002, '2021-09-01 10:00:00', '2021-09-01 10:00:42', 1, 0, 1, null), (102, 2002, '2021-10-01 11:00:00', '2021-10-01 11:00:30', 1, 0, 1, null); INSERT INTO tb_video_info(video_id, author, tag, duration, release_time) VALUES (2001, 901, '影視', 30, '2021-01-01 7:00:00'), (2002, 901, '美食', 60, '2021-01-01 7:00:00'), (2003, 902, '旅游', 90, '2021-01-01 7:00:00'); # 1,計算視頻對應觀看次數(shù),觀看時長,視頻時長,完播次數(shù) select vlog.video_id ,uid, count(vlog.video_id) 觀看次數(shù) , TIMESTAMPDIFF(second,start_time,end_time) 觀看時長, duration 視頻時長, sum(TIMESTAMPDIFF(second,start_time,end_time) >= duration) 完播次數(shù) from tb_user_video_log as vlog left join (select video_id,duration from tb_video_info) t1 on vlog.video_id=t1.video_id group by video_id; # 計算視頻完播率(完播次數(shù)/觀看次數(shù)) select t2.video_id,完播次數(shù)/觀看次數(shù) 完播率 from ( select vlog.video_id ,uid, count(vlog.video_id) 觀看次數(shù) , TIMESTAMPDIFF(second,start_time,end_time) 觀看時長, duration 視頻時長, sum(TIMESTAMPDIFF(second,start_time,end_time) >= duration) 完播次數(shù) from tb_user_video_log as vlog left join (select video_id,duration from tb_video_info) t1 on vlog.video_id=t1.video_id group by video_id) t2 group by video_id;






評論(0)


暫無數(shù)據(jù)
推薦帖子
0條評論
1條評論
0條評論