每天一道大厂SQL题【Day23】华泰证券真题实战(五)

news2024/12/23 10:27:51

每天一道大厂SQL题【Day23】华泰证券真题实战(五)

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

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

每日语录

人生不如意之事十有八九,剩下的十之一二,超级不如意

image-20230421142420766

第23题:

需求列表

求每日每个客户每只股票的市值增长率

客户购买理财hs_asset.stock,描述如下:

create table hs_asset.stock(

init_date integer comment ’ 日 期 ',

clinet_id varchar(20)

comment ‘客户号’,

stock_code varchar (6)

comment ’ 股 票 代 码 ',

market_value numeric(38,20)

comment ‘持仓市值’

);

定义:市值增长率=(当日市值-上日市值)/上日市值, 求每日每个客户每只股票的市值增长率

–假设都是连续日期,没有中断。休市也有持仓记录。

create or replace temporary view

stock(init_date, client_id, stock_code, market_value)

as values

(‘2021-09-01’, 1, ‘001’, 100),
(‘2021-09-02’, 1, ‘001’, 200),
(‘2021-09-03’, 1, ‘001’, 300),
(‘2021-09-01’, 1, ‘002’, 500),
(‘2021-09-02’, 1, ‘002’, 400),
(‘2021-09-03’, 1, ‘002’, 300),
(‘2021-09-01’, 2, ‘003’, 100),
(‘2021-09-02’, 2, ‘003’, 200),
(‘2021-09-03’,; 2, ‘003’, 300)

思路分析

计算股票表 stock 中各股票的增长率。具体步骤如下:

  1. 内层子查询中,通过 lag() 函数获取每只股票的上一个交易日的市值,即 last_market_value。
  2. 在外层查询中,选取所有列并增加一列 incre_rate,在这列中计算每只股票的增长率。
  3. 增长率的计算方式为 (market_value - last_market_value) / last_market_value,其中 market_value 表示某只股票的当日市值,last_market_value 表示前一天的市值。
  4. 需要注意的是,如果上一个交易日的市值为 0,则增长率为 null。

答案获取

建议你先动脑思考,动手写一写再对照看下答案,如果实在不懂可以点击下方卡片,回复:大厂sql 即可。
参考答案适用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.coloradmin.cn/o/443185.html

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

相关文章

Veritas 与星辰天合的官方一体化方案来了

11>2,XSKY星辰天合联手 Veritas 贡献企业数据管理最佳实践。 近日,XSKY星辰天合以“科技联盟伙伴”身份亮相 2023 Veritas Solution Day,并宣布与 Veritas 推出联合解决方案。双方将携手为大型企业客户带来业界领先的数据存储与保…

CDH中的MySQL升级(RPM包方式)

CDH中的MySQL升级(RPM包方式) 1.下载官网的5.7中最新的版本,地址:MySQL 5.7.41 rpm下载地址 2.解压下载的tar包:tar -xvf mysql-5.7.41-1.el7.x86_64.rpm-bundle.tar 3.备份数据库 3.1 先停止MySQL服务:sy…

【测试开发】第一节.测开入门(附常考面试题)

文章目录 前言 一、什么是测试开发 1.1 常考面试题 二、软件测试的基础概念 2.1 需求 2.2 测试用例 3、BUG 三、生命周期 3.1 软件的生命周期 3.2 软件测试的生命周期 四、软件工程中的几种常见的开发模型 4.1 瀑布模型 4.2 螺旋模型 4.3 增量模型和迭代模型 4.4 敏捷…

【Windows10】〖问题〗Win10默认应用Web浏览器设置里出现两个Microsoft Edge图标,如何删掉空白图标?

〖问题〗Win10默认应用Web浏览器设置里出现两个Microsoft Edge图标,如何删掉空白图标? 问题 出现原因: 空白那个应该是旧版edge,可能是因为你曾经升级最新版Chromium的edge时,旧版本的edge并没有被系统清除干净所…

spring security (史上最全)

认证与授权(Authentication and Authorization) 一般意义来说的应用访问安全性,都是围绕认证(Authentication)和授权(Authorization)这两个核心概念来展开的。 即: 首先需要确定用…

计算机组成原理——第七章输入输出系统(下)

还君明珠双泪目,恨不相逢未嫁时 文章目录 前言7.3.2 中断的作用和原理7.3.3 多重中断7.3.4 程序中断方式7.3.5 DMA 方式 前言 本节除了对时间的计算考察比较多之外,其他的方面也有考察,同时中断的考点在操作系统中也有考察,机组里…

〖Python网络爬虫实战⑯〗- 网页解析利器parsel

订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付…

【hello Linux】进程控制

目录 1. 进程创建 2. 进程终止 3. 进程常见的退出方法 4. 进程等待 5. 进程等待的方法 6. 获取子进程status Linux🌷 1. 进程创建 fork 函数初识 在 linux 中 fork 函数是非常重要的函数,它可以从已存在进程中创建一个新进程。 新进程便是我们所说的子进…

从0到1搭建react 工程化前端项目

一、npm init 初始化包管理 1.在使用该命令之前,创建一个文件夹,例如:reactDemo2.使用在电脑终端命令行工具中,找到1创建的文件夹,并转到改文件夹指定目录;3.执行 npm init4.如图所示: 5.执行命…

云看消博会:政策、技术、玩家造就的数字化革命

配图来自Canva可画 会展作为展示地域经济、文化、技术等软硬实力的最佳舞台,在塑造城市品牌形象、加速地域经济发展中发挥着重要的促进作用。近几年,在数字经济浪潮的推动下,会展产业走上了网联化、数字化、智能化的道路,催生了不…

上货避坑指南 私域上货选品工具 无货源选品上货 采集商品详情数据API分享 详情图 sku信息

电商开店之后,第一件事就是上货了,上货其实也是有技巧的。 上传商品时我们一定要注意细节,不可忽略一些重要细节,所以商家们在上传商品前,不可忽略是否预售、标题、主图、详情页、保证金、上架时间这几个细节。 详情…

PHP实现输入数值计算幂次,输入工资,判断个人所得税的金额这两个程序的代码

目录 前言 一、输入数值计算幂次 1.1运行流程(思想) 1.2代码段 1.3运行截图 二、输入工资,判断个人所得税的金额 2.1运行流程(思想) 2.2代码段 2.3运行截图 前言 1.因多重原因,本博文有两个代码程…

【动手学深度学习】使用块的网络(VGG)

使用块的网络(VGG) 本文为李沐老师《动手学深度学习》一书的学习笔记,原书地址为:Dive into Deep Learning。 另,给自己练习时没有gpu资源的小伙伴推荐下kaggle数据科学网站,每周免费训练时长30h。 1 网络结…

Compose TextField

TextField​ Composable fun TextField(value: String,onValueChange: (String) -> Unit,modifier: Modifier Modifier,enabled: Boolean true,readOnly: Boolean false,textStyle: TextStyle LocalTextStyle.current,label: Composable (() -> Unit)? null,place…

unity,物理材质2d

介绍 2D物理材质(Physics Material 2D)是Unity中用于设置2D游戏对象的物理特性的一种方式。2D物理材质可以控制2D游戏对象的摩擦力、弹性系数等物理属性,从而影响其在物理引擎中的运动行为。以下是2D物理材质的详细介绍: 方法 摩擦力 2D物理材质的主要…

Qt+FFmpeg简单实现录屏并保存为MP4视频

一、前言 最近需要实现一个录屏功能,网上查了好多资料,最可靠的方案当然还是用FFmpeg实现,但是也踩了很多坑,包括FFmpeg版本问题,vs2019里相关编译问题,FFmpeg也不太熟悉,很多代码不太容易看懂&…

springboot+vue学生毕业离校系统(源码+说明文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的学生毕业离校系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风…

Flutter Android问题记录 - 升级Android Studio 2022.2.1版本后运行项目报错

文章目录 前言开发环境问题描述问题分析解决方案补充内容最后 前言 最近一个Flutter项目有新需求,开发时一直是在iOS设备上运行,花了几天做完后运行到Android设备测试,结果项目构建失败了。 开发环境 Flutter: 3.7.11Android Studio: 2022…

java工程师前景分析

本篇文章主要讲解java工程师的职业就业环境及职业剖析 作者:任聪聪 日期:2023年4月18日 java工程师目前属于很饱和的一个岗位(2023年4月18日),但也会伴随劳动市场的变化出现不饱和的情况的。 实际上对于想入行it行业的…

PHP下的MySQL的基础学习

文章目录 一、MySQL LIKE 子句二、MySQL UNION 操作符三、MySQL 排序四、MySQL GROUP BY 语句五、MySQL 连接的使用总结 一、MySQL LIKE 子句 我们知道在 MySQL 中使用 SQL SELECT 命令来读取数据, 同时我们可以在 SELECT 语句中使用 WHERE 子句来获取指定的记录。…