牛客网-SQL大厂面试题-2.平均播放进度大于60%的视频类别

题目:平均播放进度大于60%的视频类别

sql 复制代码
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 '是否转发',
    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 '创作者ID',
    tag VARCHAR(16) NOT NULL COMMENT '类别标签',
    duration INT NOT NULL COMMENT '视频时长(秒数)',
    release_time datetime NOT NULL COMMENT '发布时间'
)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:21', 0, 0, 1, null),
  (103, 2001, '2021-10-01 11:00:50', '2021-10-01 11:01:20', 0, 1, 0, 1732526),
  (102, 2002, '2021-10-01 11:00:00', '2021-10-01 11:00:30', 1, 0, 1, null),
  (103, 2002, '2021-10-01 10:59:05', '2021-10-01 11:00:05', 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, '2020-01-01 7:00:00');

答案

sql 复制代码
select
	tag,
	concat(round(avg(jd), 2), '%') as avg_play_progress
from
	(
		select 
			t2.tag,
			round((if(TIMESTAMPDIFF(second, start_time, end_time) / t2.duration >= 1, 1, TIMESTAMPDIFF(second, start_time, end_time) / t2.duration)) * 100, 2 ) as jd
		from
			tb_user_video_log t1
		join tb_video_info t2 
on
			t1.video_id = t2.video_id
	) t1
group by
	tag
having
	round(avg(jd), 2) > 60
order by
	avg_play_progress desc;
相关推荐
GoldenaArcher3 小时前
GraphQL 工程化篇 III:引入 Prisma 与数据库接入
数据库·后端·graphql
川石课堂软件测试3 小时前
自动化测试之 Cucumber 工具
数据库·功能测试·网络协议·测试工具·mysql·单元测试·prometheus
RestCloud3 小时前
StarRocks 数据分析加速:ETL 如何实现实时同步与高效查询
数据库
野猪亨利6674 小时前
Qt day1
开发语言·数据库·qt
本就一无所有 何惧重新开始4 小时前
Redis技术应用
java·数据库·spring boot·redis·后端·缓存
isaki1375 小时前
qt day1
开发语言·数据库·qt
流星白龙5 小时前
【Qt】4.项目文件解析
开发语言·数据库·qt
小钻风33665 小时前
HTTPS是如何确保安全的
网络·数据库
CryptoPP5 小时前
获取越南股票市场列表(包含VN30成分股)实战指南
大数据·服务器·数据库·区块链
阿巴~阿巴~6 小时前
Redis重大版本演进全解析:从2.6到7.0
服务器·数据库·redis·ubuntu·缓存·centos