每天一道大厂SQL题【Day29】腾讯数据提取(二)过去一周内的曝光点赞数据

简介: 每天一道大厂SQL题【Day29】腾讯数据提取(二)过去一周内的曝光点赞数据

第29题 需求二: 过去一周内的曝光点赞数据

1. 需求列表

需要输出一张中间 dws 层表:要求能够查询每个视频创建者 user_id 最近发布的 3 个视频,在过去一周内的曝光,点赞数据

需要产出字段:视频创建者 user_id,曝光用户,点赞用户数,曝光次数、点赞次数

思路分析

首先使用WITH子句定义了三个临时表:

  • recent_videos:查询过去一周内发布的所有视频,并使用ROW_NUMBER()函数为每个视频创建者的视频分配一个行号,按照视频创建时间降序排列。
  • top_3_videos:从recent_videos表中选择行号小于等于3的视频,即每个视频创建者最近发布的3个视频。
  • video_action:将top_3_videos表与t_user_video_action_d表连接,以获取每个视频创建者最近发布的3个视频在过去一周内的曝光和点赞数据。使用聚合函数计算曝光用户数,点赞用户数,曝光次数和点赞次数。

最后,从video_action表中选择所需字段即可。

答案获取

建议你先动脑思考,动手写一写再对照看下答案,如果实在不懂可以点击下方卡片,回复:大厂sql 即可。

参考答案适用HQL,SparkSQL,FlinkSQL,即大数据组件,其他SQL需自行修改。

加技术群讨论

点击下方卡片关注 联系我进群

或者直接私信我进群

附表

用户行为表:t_user_video_action_d分区:ds(格式 yyyyMMdd) 主键:user_id、video_id

含义:一个 user 对一个视频的所有行为聚合,每天增量字段:

字段名 字段含义 类型
user_id 用 户 id string
video_id 视 频 id string
expose_cnt 曝光次数 int
like_cnt 点赞次数 int

视频表:t_video_d

分区:ds(格式 yyyyMMdd)主键:video_id

含义:当天全量视频数据字段:

字段名 字段含义 类型 枚举
video_id 视 频 id string
video_type 视频类型 string 娱乐、新闻、搞笑
video_user_id 视频创建者 user_id string
video_create_time 视频创建时间 bigint

作者表:t_video_user_d

分区:ds(格式 yyyyMMdd)主键:video_user_id

含义:当天全量视频创建者数据

字段名 字段含义 类型 枚举
video_user_id 视频创建者 user_id string
video_user_name 名称 string
video_user_type 视频创建者类型 string 娱乐、新闻、搞笑
-- 建表
create table if not exists t_user_video_action_d (
user_id string comment "用户id", video_id string comment "视频id", expose_cnt int comment "曝光次数", like_cnt  int comment "点赞次数"
)
partitioned by (ds string);
create table if not exists t_video_d (
video_id  string comment ' 视 频 id', video_type    string comment ' 视 频 类 型 ', video_user_id     string comment '视频创建者user_id', video_create_time bigint comment '视频创建时间'
)
partitioned by (ds string);
create table if not exists t_video_user_d (
video_user_id string comment '视频创建者user_id', video_user_name string comment ' 名 称 ', video_user_type string comment '视频创建者类型'
)
partitioned by (ds string);

文末SQL小技巧

提高SQL功底的思路。

1、造数据。因为有数据支撑,会方便我们根据数据结果去不断调整SQL的写法。

造数据语法既可以create table再insert into,也可以用下面的create temporary view xx as values语句,更简单。

其中create temporary view xx as values语句,SparkSQL语法支持,hive不支持。

2、先将结果表画出来,包括结果字段名有哪些,数据量也画几条。这是分析他要什么。

从源表到结果表,一路可能要走多个步骤,其实就是可能需要多个子查询,过程多就用with as来重构提高可读性。

3、要由简单过度到复杂,不要一下子就写一个很复杂的。

先写简单的select from table…,每个中间步骤都执行打印结果,看是否符合预期, 根据中间结果,进一步调整修饰SQL语句,再执行,直到接近结果表。

4、数据量要小,工具要快,如果用hive,就设置set hive.exec.mode.local.auto=true;如果是SparkSQL,就设置合适的shuffle并行度,set spark.sql.shuffle.partitions=4;

目录
打赏
0
0
0
0
111
分享
相关文章
【Azure Developer】分享两段Python代码处理表格(CSV格式)数据 : 根据每列的内容生成SQL语句
本文介绍了使用Python Pandas处理数据收集任务中格式不统一的问题。针对两种情况:服务名对应多人拥有状态(1/0表示),以及服务名与人名重复列的情况,分别采用双层for循环和字典数据结构实现数据转换,最终生成Name对应的Services列表(逗号分隔)。此方法高效解决大量数据的人工处理难题,减少错误并提升效率。文中附带代码示例及执行结果截图,便于理解和实践。
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
54 9
阿里云DTS踩坑经验分享系列|DTS打通SQL Server数据通道能力介绍
SQL Server 以其卓越的易用性和丰富的软件生态系统,在数据库行业中占据了显著的市场份额。作为一款商业数据库,外部厂商在通过解析原生日志实现增量数据捕获上面临很大的挑战,DTS 在 SQL Sever 数据通道上深研多年,提供了多种模式以实现 SQL Server 增量数据捕获。用户可以通过 DTS 数据传输服务,一键打破自建 SQL Server、RDS SQL Server、Azure、AWS等他云 SQL Server 数据孤岛,实现 SQL Server 数据源的流动。
94 0
阿里云DTS踩坑经验分享系列|DTS打通SQL Server数据通道能力介绍
SQL Server 数据太多如何优化
11种优化方案供你参考,优化 SQL Server 数据库性能得从多个方面着手,包括硬件配置、数据库结构、查询优化、索引管理、分区分表、并行处理等。通过合理的索引、查询优化、数据分区等技术,可以在数据量增大时保持较好的性能。同时,定期进行数据库维护和清理,保证数据库高效运行。
130 4
SQL语句实现查询连续六天数据的方法与技巧
在数据库查询中,有时需要筛选出符合特定时间连续性条件的数据记录
SQL查询每秒的数据:技巧、方法与性能优化
id="">SQL查询功能详解 SQL(Structured Query Language,结构化查询语言)是一种专门用于与数据库进行沟通和操作的语言
添加数据到数据库的SQL语句详解与实践技巧
在数据库管理中,添加数据是一个基本操作,它涉及到向表中插入新的记录
SQL数据库数据修改操作详解
数据库是现代信息系统的重要组成部分,其中SQL(StructuredQueryLanguage)是管理和处理数据库的重要工具之一。在日常的业务运营过程中,数据的准确性和及时性对企业来说至关重要,这就需要掌握如何在数据库中正确地进行数据修改操作。本文将详细介绍在SQL数据库中如何修改数据,帮助读者更好
1029 4
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
190 0
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
79 0

热门文章

最新文章