【字节跳动】数据挖掘面试题0008:计算西瓜视频内容好评率

文章大纲

      • 题目描述

题目描述

西瓜视频近期开展了”2020百大人气创作者”优质内容扶持项目,鼓励用户产出优质的视频内容。

现需要统计2020年11月01日至2020年11月30日期间创作的视频中,

“科技”大类下“数码测评"子类的视频好评率(好评率=好评数/视频观看次数),写出sql语句进行查询。

用户观看视频后的评价详情表:content_action_infoid(视频id,主键)create_time (创建时间,格式‘2020-11-01)user_id(观看者id)content_id (视频id,外键)content_action (视频评价,包括’点赞‘,’差评‘,‘无评价’)视频详情表:dim_contentcontent_id (外键)creator_id(创作者id)content_category (商品类目)content_sub_category (品牌名称)
SELECT dc.content_id,dc.content_category,dc.content_sub_category,COUNT(CASE WHEN ca.content_action = '点赞' THEN 1 END) AS 好评数,COUNT(DISTINCT ca.user_id) AS 视频观看次数,ROUND(COUNT(CASE WHEN ca.content_action = '点赞' THEN 1 END) / COUNT(DISTINCT ca.user_id), 4) AS 好评率
FROM dim_content dc
JOIN content_action_info ca ON dc.content_id = ca.content_id
WHERE dc.content_category = '科技'AND dc.content_sub_category = '数码测评'AND ca.create_time BETWEEN '2020-11-01' AND '2020-11-30'
GROUP BY dc.content_id, dc.content_category, dc.content_sub_category
ORDER BY 好评率 DESC;
  • 若需要统计所有符合条件视频的整体好评率,可移除GROUP BY并直接计算总和
SELECTCOUNT(1) AS all_action,SUM(CASE WHEN content_action = '点赞' THEN 1 ELSE 0 END) AS like_action,SUM(CASE WHEN content_action = '点赞' THEN 1 ELSE 0 END) / COUNT(1) AS like_rate
FROM content_action_info AS a
JOIN dim_content AS b ON a.content_id = b.content_id
WHERE b.content_category = '科技'AND b.content_sub_category = '数码测评'AND a.create_time BETWEEN '2020-11-01' AND '2020-11-30';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/90168.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/90168.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 进程控制:全面深入剖析进程创建、终止、替换与等待

文章目录引言一、进程创建:fork()系统调用的奥秘1.1 fork()的基本原理1.2 代码示例与解读1.3 写时复制(COW)优化二、进程终止:exit()与_exit()的抉择2.1 exit()和_exit()的区别2.2 代码示例与分析三、进程替换:exec()函…

PJSIP 中的 TCP 传输配置指南

PJSIP 支持通过 TCP 传输 SIP 消息,相比 UDP 提供了更可靠的传输机制。以下是关于在 PJSIP 中使用 TCP 的详细指南。1. 创建 TCP 传输基本 TCP 传输配置cpjsua_transport_config tcp_cfg; pjsua_transport_config_default(&tcp_cfg); tcp_cfg.port 5060; // SI…

小菜狗的云计算之旅,今天学习MySQL数据库基础知识及操作

目录 一、概述 数据库概念 数据库的类型 关系型数据库模型 关系数据库相关概念 二、安装 1、mariadb安装 2、mysql安装 3、启动并开机自启 4、本地连接(本地登录) 三、mysql数据库配置与命令 yum安装后生成的目录 mysql服务器的启动脚本 数…

为什么是直接在**原型(prototype)上**添加函数

这是一个非常经典、核心的 JavaScript 面向对象编程问题:> 为什么是直接在**原型(prototype)上**添加函数,而不是在类/构造函数内部直接添加?你提到的代码中:javascript function TopSearchComponent() …

深入理解 classnames:React 动态类名管理的最佳实践

在现代前端开发中,我们经常需要根据组件的状态、属性或用户交互来动态切换 CSS 类名。虽然 JavaScript 提供了多种方式来处理字符串拼接,但随着应用复杂性的增加,传统的类名管理方式很快就会变得混乱不堪。这时,classnames 库就像…

C++系列(七):深度探索C++内存 --- 分区、堆栈、new/delete与高效编程实践

引言 程序运行的本质是对数据的处理,而内存则是程序执行的核心舞台。理解内存的物理与逻辑分区,是掌握程序底层行为、编写高效可靠代码的关键基石。内存并非混沌一片,而是被严格划分为代码区、全局区、栈区和堆区。每个区域拥有独特的生命周…

微信小程序71~80

1.总结小程序生命周期 小程序冷启动,钩子函数执行的顺序保留当前页面,进入下一个页面,钩子函数执行的顺序销毁当前页面,进入下一个页面,钩子函数执行的顺序小程序热启动,钩子函数执行的顺序 2.使用Componen…

[Pytest][Part 3]检测python package状态

目录 实现需求1: 检查python package状态——pkg_resource hook实现自动检测包状态 conftest.py hook钩子函数 Part1: https://blog.csdn.net/x1987200567/article/details/144915315?spm1001.2014.3001.5501 从这里开始逐个实现Part1中的需求 实现需求1&a…

自定义时间范围选择组件使用教程(基于 Vue 3 + Element Plus)

🕓 自定义时间范围选择组件使用教程(基于 Vue 3 Element Plus)✅ 一个灵活实用的时间范围选择器,支持开始时间、结束时间、快捷时间选项、本地双向绑定、插槽扩展等功能。–📘 一、功能介绍 该组件基于 Element Plus …

YOLOv8 模型转换 ONNX 后 C# 调用异常:一个参数引发的跨平台适配难题

一、问题背景:从 Python 训练到 C# 部署的跨平台需求 作为一名 C# 开发者,我在完成 YOLOv8 模型训练(使用 Ultralytics 官方框架,训练数据为自定义目标检测数据集,输入尺寸 640x640,训练轮次 100 轮&#…

Apache Cloudberry 亮相 2025 IvorySQL 生态大会暨 PostgreSQL 高峰论坛

6 月 27 日至 28 日,IvorySQL 2025 生态大会暨 PostgreSQL 高峰论坛在泉城济南顺利召开。本届大会由 IvorySQL 开源数据库社区主办、瀚高基础软件股份有限公司承办,吸引了来自国内外的数据库技术专家、开发者与开源爱好者齐聚一堂,聚焦数据库…

CMake之CMakeLists.txt语法规则

本文主要参考正点原子的应用开发手册,仅作为本人学习笔记使用。 目录 cmake 的使用方法其实还是非常简单的,重点在于编写 CMakeLists.txt,CMakeLists.txt 的语法规则也简单,并没有 Makefile的语法规则那么复杂难以理解&#xff01…

Mysql专题复习

重点内容:1. Mysql架构:客户端 Server层 存储引擎2. 索引数据结构:B树4. 索引优化:覆盖索引、排序、JOIN、分页; COUNT; 索引下推;单/双路排序5. 数据库事务; 锁;隔离级别&#xff…

CLIP的tokenizer详解

一、bytes_to_unicodedef bytes_to_unicode():"""Returns list of utf-8 byte and a corresponding list of unicode strings.The reversible bpe codes work on unicode strings.This means you need a large # of unicode characters in your vocab if you wa…

【如何判断Linux系统是Ubuntu还是CentOS】

要确定您的操作系统是 Ubuntu 还是 CentOS,可以通过以下方法快速检查: 方法 1:通过终端命令(推荐) 在终端中执行以下命令之一: 查看 /etc/os-release 文件 cat /etc/os-releaseUbuntu 特征:显示…

RISCV Linux 虚拟内存精讲系列二 -- Linux 入口 head.S

通过 Linux 的构建系统,即 Linux 源代码的根目录下的 Makefile,能够找到 vmlinux 的链接文件,从而能够查看其入口代码 head.S:_start, 如下: Linux 构建系统主Makefile: vmlinux.lds: head.S: 找到该入口后&#xff0c…

springAI学习:Advisors

spring AI Advisors类似于拦截器,会对请求的prompt做出特定的修改和增强(比如传入历史沟通记录、搜索信息等等),以达到完善prompt的目的。通过Advisors API,开发人员可以创建更为复杂、可重用、可维护的AI组件。下面介…

MySQL CDC与Kafka整合指南:构建实时数据管道的完整方案

一、引言:现代数据架构的实时化需求 在数字化转型浪潮中,实时数据已成为企业的核心资产。传统批处理ETL(每天T1)已无法满足以下场景需求: 实时风险监控(金融交易)即时个性化推荐(电商…

MATLAB | 绘图复刻(二十一)| 扇形热图+小提琴图

前段时间在小红书刷到了一个很有特色的热力图,由大佬滚筒洗衣机创作,感觉很有意思,尝试 MATLAB 复刻: 作者使用的是 python 代码,赶快去瞅瞅。 复刻效果 正文部分 0.数据准备 数据需要一个用来画热图的矩阵以及一个…

批量PDF转换工具,一键转换Word Excel

软件介绍 今天为大家推荐一款高效的Office文档批量转换工具,能够快速将Word和Excel文件批量转换为PDF格式。 软件特点 这款名为"五五Excel word批量转PDF"的工具体积小巧,不到2M大小,却能实现强大的批量转换功能&#xff0c…