一个网站做三个关键词,物流网站建设公司哪家好,上海市新闻发布会,建设营销型网站流程图文章目录 每天一道大厂SQL题【Day27】脉脉真题实战(三)连续两天活跃用户每日语录第26题 中级题: 活跃时长的均值1. 需求列表思路分析 答案获取加技术群讨论附表文末SQL小技巧 后记 每天一道大厂SQL题【Day27】脉脉真题实战(三)连续两天活跃用户
大家好#xff0c;我是Maynor。… 文章目录 每天一道大厂SQL题【Day27】脉脉真题实战(三)连续两天活跃用户每日语录第26题 中级题: 活跃时长的均值1. 需求列表思路分析 答案获取加技术群讨论附表文末SQL小技巧 后记 每天一道大厂SQL题【Day27】脉脉真题实战(三)连续两天活跃用户
大家好我是Maynor。相信大家和我一样都有一个大厂梦作为一名资深大数据选手深知SQL重要性接下来我准备用100天时间基于大数据岗面试中的经典SQL题以每日1题的形式带你过一遍热门SQL题并给出恰如其分的解答。
一路走来随着问题加深发现不会的也愈来愈多。但底气着实足了不少相信不少朋友和我一样日积月累才是最有效的学习方式
每日语录 学习还是他娘地学习
第26题 中级题: 活跃时长的均值
1. 需求列表
(1) 在过去一个月内,曾连续两天活跃的用户
(2) 有人想了解在过去一个月中,不同人才级别用户的活跃频次差异
– 什么数据可以说明该问题?请写出原因和您的思考
– 数据对应的sql是什么?
思路分析
(1) 在过去一个月内,曾连续两天活跃的用户 找到过去一个月内所有活跃的用户和日期。 计算每个用户相邻两天活跃日期之间的时间差。 筛选出时间差为1天的用户。
(2) 有人想了解在过去一个月中,不同人才级别用户的活跃频次差异 找到过去一个月内所有活跃的用户和日期。 按照用户的职业水平分组计算每组用户的平均活跃天数。 比较不同职业水平用户组的平均活跃天数以了解它们之间的差异。
答案获取
建议你先动脑思考动手写一写再对照看下答案如果实在不懂可以点击下方卡片回复:大厂sql 即可。 参考答案适用HQLSparkSQLFlinkSQL即大数据组件其他SQL需自行修改。
加技术群讨论
点击下方卡片关注 联系我进群
或者直接私信我进群
附表
表1maimai.dau
duidmoduleactive_duration列说明2020-01-011jobs324d 活 跃 的 日 期 uid用户的唯一编码module用户活跃模块actre.duration该模块下对应的活跃时长单位s2020-01-012feeds4452020-01-013im3452020-01-022network7652020-01-023jobs342…………
表2maimai.users
uidcareer_levelcitywork_length列说明1中级人才北京4uid用户的唯一编码career level人才级别2高级人才上海73初级人才北京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.autotrue;如果是SparkSQL就设置合适的shuffle并行度set spark.sql.shuffle.partitions4;
后记
博客主页https://manor.blog.csdn.net
欢迎点赞 收藏 ⭐留言 如有错误敬请指正 本文由 Maynor 原创首发于 CSDN博客 不能老盯着手机屏幕要不时地抬起头看看老板的位置⭐ 专栏持续更新,欢迎订阅https://blog.csdn.net/xianyu120/category_12182595.html