每天一道大厂SQL题【Day26】脉脉真题实战(二)活跃时长的均值

文章目录

  • 每天一道大厂SQL题【Day26】脉脉真题实战(二)活跃时长的均值
    • 每日语录
    • 第26题 中级题: 活跃时长的均值
      • 1. 需求列表
      • 思路分析
    • 答案获取
    • 加技术群讨论
    • 附表
      • 文末SQL小技巧
    • 后记

每天一道大厂SQL题【Day26】脉脉真题实战(二)活跃时长的均值

大家好,我是Maynor。相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题,以每日1题的形式,带你过一遍热门SQL题并给出恰如其分的解答。

一路走来,随着问题加深,发现不会的也愈来愈多。但底气着实足了不少,相信不少朋友和我一样,日积月累才是最有效的学习方式!

每日语录

C:\Users\ADMINI~1\AppData\Local\TemputoolsDoutuPlugin/tempImage1686573886875.gif

学习!还是他娘地学习!

第26题 中级题: 活跃时长的均值

1. 需求列表

昨日的活跃用户中,各个级别人才,当日最大活跃时长模块的活跃时长,占当日活跃总时长的比值的均值

思路分析

  1. 计算每个用户每天在各个模块的活跃时长总和。
  2. 找到每个用户每天活跃时长最大的模块。
  3. 计算每个用户每天活跃时长最大模块的活跃时长占当天活跃总时长的比值。
  4. 按照用户的职业水平分组,计算每组用户当天活跃时长最大模块的活跃时长占当天活跃总时长比值的均值。

答案获取

建议你先动脑思考,动手写一写再对照看下答案,如果实在不懂可以点击下方卡片,回复:大厂sql 即可。
参考答案适用HQL,SparkSQL,FlinkSQL,即大数据组件,其他SQL需自行修改。

加技术群讨论

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

或者直接私信我进群

附表

表1:maimai.dau

duidmoduleactive_duration列说明
2020-01-011jobs324d: 活 跃 的 日 期 uid:用户的唯一编码module:用户活跃模块actre.duration:该模块下对应的活跃时长(单位:s)
2020-01-012feeds445
2020-01-013im345
2020-01-022network765
2020-01-023jobs342

表2:maimai.users

uidcareer_levelcitywork_length列说明
1中级人才北京4uid:用户的唯一编码career level:人才级别
2高级人才上海7
3初级人才北京1city:用户所在城市work_length:用户工作年限
4普通人才平顶山2
-- 建表
-- 表1 dau	记录了每日脉脉活跃用户的uid和不同模块的活跃时长
create	or	replace	temporary	view	dau(d,	uid,	module, active_duration) as
values ('2020-01-01', 1, 'jobs', 324),
('2020-01-01', 2, 'feeds', 445),
('2020-01-01', 3, 'im', 345),
('2020-01-02', 2, 'network', 765),
('2020-01-02', 3, 'jobs', 342);-- 表2 users 脉脉所有用户得一些注册属性
create	or	replace	temporary	view	users(uid,	career_level, city, work_length) as
values (1, '中级人才', '北京', 4),
(2, '高级人才', '上海', 7),
(3, '初级人才', '北京', 1),
(4, '普通人才', '平顶山', 2); 

文末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;

后记

📢博客主页:https://manor.blog.csdn.net

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 Maynor 原创,首发于 CSDN博客🙉
📢不能老盯着手机屏幕,要不时地抬起头,看看老板的位置⭐
📢专栏持续更新,欢迎订阅:https://blog.csdn.net/xianyu120/category_12182595.html

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

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

相关文章

通过迁移加速计划迁移到亚马逊云科技

公司出于许多不同的原因迁移到云。也许他们需要关闭一个老化的数据中心。或者,他们正在寻找太昂贵或太难在内部构建和维护的新功能。无论出于何种原因,在开始规划迁移之前,他们还有另一个问题需要回答:哪种云服务适合他们的需求&a…

gogs的自定义配置

在 GOGS 下载并安装后,在程序目录下建立一个custom/conf/app.ini的配置文件,内容如下: APP_NAME Gogs # APP名字 RUN_USER git # 启动用户,设置后只能以此账号启动gogs RUN_MODE prod[database] DB_TYPE mysql HOST 1…

.Net Core Restful Api 版本区分第一种

前言:在我们进行Web Api开发时,版本的区分,是必须要考虑的,涉及到我们的版本发布,切换等,如何从旧版本无缝的切换到新版本? 下面,我们通过使用[ApiVersion]特性,实现两个…

(中等)LeetCode146 LRU 缓存 Java

本题有两种实现操作&#xff0c;需要使用到一个哈希表和一个双向链表。在Java语言中&#xff0c;有一种结合了哈希表和双向链表的数据结构&#xff0c;LinkedHashMap import java.util.LinkedHashMap; import java.util.Map;class LRUCache extends LinkedHashMap<Integer,…

Modbus转Profibus网关modbus仪表不连续

远创智控YC-MDPB-001本产品是一种将Profibus和Modbus总线连接的通讯协议转换设s备。符合Modbus协议的设备&#xff08;如&#xff1a;仪表、传感器、扫码枪等&#xff09;可通过本产品和Profibus总线上的主站设备 1, &#xff08;如&#xff1a;西门子S7-300/400&#xff0c;…

OSPF和VLAN综合实验

目录 题目 1.IP地址的规划设计 2.搭建拓扑并进行基础IP配置 3.配置虚拟局域网 1&#xff09;按子网划分要求配置PC1和PC2 检测&#xff1a;输入[SW1]display vlan进行检查 配置路由器R3 检测&#xff1a;用PC1去访问PC2 2&#xff09;配置拓扑中其余路由器的网关以及回…

(阿里云)STM32L+BC20+MQTT协议传输温湿度,ADC,电压,GPS数据到阿里云物联网平台

1、材料准备 准备以下材料 2、设备连接 2.1 插入物联网卡 首先把BC20核心板从开发板上拆下来 然后将物联卡放置在BC20核心板内 物联卡放置完成将BC20核心板重新插入到开发板内&#xff08;注意不要弄错方向&#xff09; 同时接入天线 2.2 连接ST-Link仿真器 用3条杜邦线接…

考研线性代数考点总结

一.行列式 1.数字型行列式 数字行列式的计算含零子式的分块计算 2.行列式的性质 |A||A^T|交换行列&#xff0c;行列式的值变号含公因子的提出或乘进去把某行的K倍加到另一行&#xff0c;行列式的值不变。行列式可以根据某一行或某一列分拆 3.抽象行列式 n阶或高阶行列式 常…

RandLA-Net 复现

GPU3090 CUDA12 1、代码 [github地址][变体] git clone --depth1 https://github.com/QingyongHu/RandLA-Net && cd RandLA-Net 2、虚拟环境中配置&#xff1a; 在跑代码的时候出现错误&#xff1a;open3d.so文件中函数报错。查看open3d版本发现不是要求的0.3版本&am…

Flask SQLAlchemy_Serializer ORM模型序列化

在前后端分离项目中&#xff0c;经常需要把ORM模型转化为字典&#xff0c;再将字典转化为JSON格式的字符串。在遇到sqlalchemy_serializer之前&#xff0c;我都是通过类似Java中的反射原理&#xff0c;获取当前ORM模型的所有字段&#xff0c;然后写一个to_dict方法来将字段以及…

Vim批量注释与反注释

在使用vim编写代码的时候&#xff0c;经常需要用到批量注释与反注释一段代码。下面简要介绍其操作。本文记录在mac/linux下的vim批量注释。 一开始我想让vim配置ctrl/快捷键&#xff0c;快速批量注释&#xff0c;但是vim的文档中不支持这样的快捷键。 如果实在要弄也能弄&…

《生活教育》期刊简介及投稿邮箱

《生活教育》期刊简介及投稿邮箱 《生活教育》杂志创办于1934&#xff0c;是中华人民共和国教育部主管的国家重点学术期刊&#xff0c;国家级期刊&#xff0c;中国知网全文收录G4期刊&#xff0c;它的理论是陶行知教育思想的主线和重要基石&#xff0c;陶行知的教育理论&#…