每天一道大厂SQL题【Day32】按消息量给广东省qq打标记

文章目录

  • 每天一道大厂SQL题【Day32】按消息量给广东省qq打标记
    • 每日语录
    • 第32题 需求三:按消息量给广东省qq打标记
      • 思路分析
      • 附表
    • 答案获取
    • 加技术群讨论
      • 文末SQL小技巧
    • 后记

每天一道大厂SQL题【Day32】按消息量给广东省qq打标记

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

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

每日语录

image-20231010100015104

学习!还是他娘地学习!

第32题 需求三:按消息量给广东省qq打标记

从table.user table_act取出每天广东省(注意table_user中地域字段部分是广东部分是广东省,都属于广东省)的qq号,且区分高活跃和低活跃,高活跃是指消息量大于200,低活跃是指消息量小于 200

输出格式:日期 地域 活跃度 qq号个数,例如20170420 广东省 高活跃 500

思路分析

解题思路如下:

  1. 首先,我们需要创建两个表:table_usetable_act,并插入相应的数据。

  2. 接下来,我们需要过滤出广东省的qq号。为此,我们可以使用Hive的JOIN操作,将table_acttable_use表连接起来,并根据地域字段筛选出广东省的数据。将结果存储在一个临时表temp_table中。

  3. 然后,我们需要根据消息量将广东省的qq号进行标记。根据题目要求,消息量大于200的为高活跃,小于200的为低活跃。我们可以使用CASE语句来实现这个逻辑。

  4. 接下来,我们需要对临时表temp_table进行分组统计,按日期、地域和活跃度进行分组,并计算每个分组中的qq号个数。将结果存储在一个结果表result_table中。

  5. 最后,我们可以查询result_table,将日期、地域、活跃度和qq号个数拼接成指定的输出格式。

请注意,以上是一个大致的解题思路,具体的Hive SQL语句可能需要根据实际情况进行调整。另外,为了提高查询性能,您可能还需要对表进行适当的分区和索引设置。

附表

qq用户档案表table.user,表结构如下:

列名类型长度允许空备注
lm_datebigint8日期(主键,分区字段)
qqbigint16qq号
agechar10年龄
sexchar10性别
areachar50地域

table_user中数据如下:

日期qq号年龄性别地域
201701011000020广东省
201701012000030北京市
201701013000025陕西省
201701015000018广东省

table_act表结构如表格3

列名类型长度允许空备注
ftimebigint日期
qqcharqq号
msgbigint10消息量
onlinetimedouble10在线时长(h)

table_act表数据包含数据如表格4

日期qq号消息量在线时长(h)
20170220100001001
20170220200001020.5
20170420300002002
20170420400003000.8
20170420500002013
create table if not exists table_use (lm_date int comment '日期',qq int comment 'QQ号',age string comment '年龄',sex string comment '性别',area string comment '地域'
);insert into table_use
values (20170101, 20000, '30', '男', '北京市'),
(20170101, 30000, '25', '男', '陕西省'),
(20170101, 40000, '18', '女', '广东省'),
(20170101, 50000, '20', '女', '四川省');
select *
from table_use;-- 2、表结构如下:
create table if not exists table_act (
ftime		int comment ' 日 期 ', qq	string comment 'QQ号',
msg	int comment ' 消 息 量 ', onlinetime int comment '在线时长(h)'
);insert into table_act
VALUES (20170220, '10000', 100, 1),
(20170220, '20000', 102, 0.5),
(20170420, '30000', 200, 2),
(20170420, '40000', 300, 0.8),
(20170420, '50000', 201, 3);
select *
FROM table_act;

答案获取

建议你先动脑思考,动手写一写再对照看下答案。

使用大厂GPT ,获取答案: https://chatgpt.com/g/g-z5gb3HnE3-da-han-sqlzhu-shou

image-20240606163429084

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

加技术群讨论

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

文末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.mzph.cn/pingmian/23689.shtml

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

相关文章

vue3引入cesium和olcs

首先引入包 pnpm i olcs; pnpm i -D vite-plugin-cesium pnpm i -S cesium在vite.config.js中配置,参考这位大佬的笔记 添加链接描述 import { defineConfig } from vite import vue from vitejs/plugin-vue import cesium from vite-plugin-cesium; // https://…

芝麻IP好用吗?来测试了!

作为老牌代理IP服务厂商,芝麻IP和青果网络代理IP都做的不错,市场上几乎可以是有口皆碑了,上次测试了青果网络的代理IP,效果表现得还挺不错,和他们自己宣传的以及客户对他们的评价大差不差。 总的来说,他们家…

交易中的预测和跟随

任何的交易决策,一定是基于某种推理关系的,这种推理关系是基于t时刻之前的状态,得到t时刻之后的结果,我们基于这种推理关系,根据当前的状态,形成了未来结果的某种预期,然后基于这种预期采取相应…

开机弹窗找不到opencl.dll怎么办,教你几种有效的修复方法

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“找不到opencl.dll文件”。这个问题可能会影响到我们的正常使用,因此了解其原因和解决方法是非常必要的。本文将从多个方面对“找不到opencl.dll文件”这一问题进行详细分析和解…

如何修复d3dcompiler43.dll丢失问题,这三种方法可轻松解决

在计算机使用过程中,我们常常会遇到一些错误提示,其中之一就是“计算机缺失d3dcompiler43.dll”。这个问题可能会影响到计算机的正常运行,让我们无法正常使用某些软件或者游戏。那么,究竟什么是d3dcompiler43.dll?为什…

极光公布2024年第一季度财报

2024年6月6日,中国深圳——中国领先的客户互动和营销科技服务商极光(Aurora Mobile,纳斯达克股票代码:JG)(以下称“极光”或“公司”)公布截至2024年3月31日第一季度未经审计的财报。 2024年第…

Ubuntu22.04显卡驱动与内核版本不一致解决方案

有时候在使用 GPU 服务器时执行 nvidia-smi 会遇到以下报错: Failed to initialize NVML: Driver/library version mismatch NVML library version: 535.161这说明 Nvidia 显卡驱动与内核版本不一致,我们可以查看一下内核版本: cat /proc/d…

netty-学习

Netty Netty 的核心概念Netty 的主要特性Netty 的应用场景Netty 的基本使用服务器端处理器 总结 代码分析1.心跳检测代码解析类和成员变量userEventTriggered方法总结 4.参数详解ChannelHandlerContext ctxObject evt 事件来源示例:配置 IdleStateHandler事件处理示…

Linux上的电子邮件服务器安装教程

🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主 📌 擅长领域:全栈工程师、爬虫、ACM算法,大数据,深度学习 💒 公众号…

浏览器内置对象 window 用法集锦,看这篇就够了

文章导读:AI 辅助学习前端,包含入门、进阶、高级部分前端系列内容,当前是 javascript 的部分,瑶琴会持续更新,适合零基础的朋友,已有前端工作经验的可以不看,也可以当作基础知识回顾。 上面文章…

[网鼎杯 2020 青龙组]singal

记录下angr初使用 这道题是很简单的逻辑 32位 我们提取opcode (你可以用convert) 我是用的IDApython\ import idc adr0x00403040 step4#距离 op[] n10#多少个数据 while(n):op.append(hex(idc.get_wide_dword(adr)))adrstepn-1 print(op)然后我又下断点,提取每个"i&q…

持续总结中!2024年面试必问 20 道 Kafka面试题(十)

上一篇地址:持续总结中!2024年面试必问 20 道 Kafka面试题(九)-CSDN博客 十九、Kafka的ACK机制是什么? Kafka的ACK(Acknowledgement,确认)机制是确保消息被成功发送和接收的重要部分…

MySQL—多表查询—内连接

一、引言 (1)内连接查询语法 内连接查询的是两张表的交集部分的数据。(也就是绿色部分展示的数据) (2)内连接有两种形式: 1、隐式内连接 语法结构: 2、显示内连接 语法结构&#xf…

pycharm FuncAnimation画动态图不显示, 以及画图

网上的一些方法给出了解决措施,如:https://blog.csdn.net/qq_41725313/article/details/122048864?spm1001.2101.3001.6650.2&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogOpenSearchComplete%7ERate-2-122048864-blog-139…

红酒:如何避免红酒过度氧化

红酒过度氧化是影响其品质的重要因素,尤其是在储存和运输过程中。过度氧化的红酒会失去原有的果香和口感,变得平淡无味。因此,避免红酒过度氧化至关重要。以下是一些进一步的措施,可以帮助您保护云仓酒庄雷盛红酒的品质&#xff1…

QT学习过程中遇到的问题自记

文章目录 前言问题1问题2问题3 前言 学习QT嵌入式实战开发(从串口通信到JSON通信微课视频版)的过程中遇到的几个小问题 问题1 1.将书中的示例代码导入自己的电脑,然后点击工程进去,不能运行,报错 no kits are enabled for this project… 我…

LangChain :构建个人AI代理从这里开始

LangChain,一个强大的工具,允许根据用户输入创建对语言模型和其他工具的复杂调用链。就像拥有一个私人助理,可以根据手头的任务做出决定。本文来分享一下在 LangChain 中使用 Agents 的心路历程。 LangChain中代理的概念 在 LangChain 中&a…

指针还是学不会?跟着小代老师学,进入深入理解指针(4)

指针还是学不会?跟着小代老师学,进入深入理解指针(4) 1回调函数2qsort使用举例2.1使用qsort函数排序整行数据2.2使用qsort排序结构体数据 3qsort函数的模拟实现 1回调函数 回调函数就是一个通过函数指针调用的函数。 如果你把函数…

小球的种类(ball)

小球的种类 题目描述 小红有 n n n种不同颜色的小球,第 i i i种颜色的小球有 a i a_i ai​个,放在同一个盒子中。 小红每次任意取出 k k k个小球并丢弃,直到盒子中剩余的球数小于 k k k个为止。 小红希望最终盒子里的小球颜色种类尽可能少…

荧光标记Avidin与特定生物分子的靶向结合-星戈瑞

亲和素Avidin是一种具有生物学特性的蛋白质,能够与生物素(biotin)进行高亲和力结合。通过荧光标记技术,我们可以将荧光基团与Avidin结合,形成荧光标记Avidin,从而实现对特定生物分子的靶向结合和可视化。 …