专业网站建设是哪家,上海婚纱网站设计,南沙滩网站建设,html怎么弄成网站每天一道大厂SQL题【Day22】华泰证券真题实战(四)
大家好#xff0c;我是Maynor。相信大家和我一样#xff0c;都有一个大厂梦#xff0c;作为一名资深大数据选手#xff0c;深知SQL重要性#xff0c;接下来我准备用100天时间#xff0c;基于大数据岗面试中的经典SQL题我是Maynor。相信大家和我一样都有一个大厂梦作为一名资深大数据选手深知SQL重要性接下来我准备用100天时间基于大数据岗面试中的经典SQL题以每日1题的形式带你过一遍热门SQL题并给出恰如其分的解答。
一路走来随着问题加深发现不会的也愈来愈多。但底气着实足了不少相信不少朋友和我一样日积月累才是最有效的学习方式
每日语录
有一天你会遇到一个妹子她不要你的房也不要你的车她也不要你。 第22题
需求列表
2.有表结构及数据如下请完成相应查询
基金产品交易流水表t_trade,描述如下
create table t_trade(
init_date integer comment ’ 日 期 , client_id varchar(20) comment ‘客户号’,
fund_code varchar (6) comment ’ 基 金 产 品 代 码 , business_flag integer comment 1 卖 出 2 买 入 , business_balance numeric(38,10)) comment ‘交易金额’
);
create or replace view
t_trade(init_date,client_id,fund_code,business_flag,business_balance) as values
(1,1,1,1,1000) ,
(1,88,1,1,2000) ,
(1,2,2,1,900) ,
(1,3,3,1,800) ,
(1,4,4,1,700) ,
(1,8,9,2,10000) ,
(1,7,8,2,9000) ,
(1,6,7,2,8000)
;
求每日买入成交金额前10名和卖出成交金额的前十名的基金产品。
思路分析
首先子查询t1用来计算每个基金产品在每个日期和业务类型下的成交金额。然后子查询t2使用窗口函数ROW_NUMBER()对每个日期和业务类型下的基金产品按照成交金额进行排名。最后对排名前10名的基金产品进行筛选输出结果。
需要注意的是在查询每日买入成交金额前10名的基金产品时应该筛选业务类型为2即买入的交易记录。如果要查询每日卖出成交金额前10名的基金产品则应该筛选业务类型为1即卖出的交易记录。
答案获取
建议你先动脑思考动手写一写再对照看下答案如果实在不懂可以点击下方卡片回复:大厂sql 即可。 参考答案适用HQLSparkSQLFlinkSQL即大数据组件其他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.autotrue;如果是SparkSQL就设置合适的shuffle并行度set spark.sql.shuffle.partitions4;
后记
博客主页https://manor.blog.csdn.net
欢迎点赞 收藏 ⭐留言 如有错误敬请指正 本文由 Maynor 原创首发于 CSDN博客 不能老盯着手机屏幕要不时地抬起头看看老板的位置⭐ 专栏持续更新,欢迎订阅https://blog.csdn.net/xianyu120/category_12182595.html