每天一道大厂SQL题【Day20】华泰证券真题实战(二)表转置

news2024/9/21 4:40:41

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

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

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

每日语录

学习是一场博弈,你的竞争对手是你自己的懒惰。

image-20230411090018447

第20题:

需求列表

2.面试题:表转置

yearmonthamount
199111.1
199121.2
199131.3
199141.4
199212.1
199222.2
199232.3
199242.4

查成这样一个结果

yearm1m2m3m4
19911.11.21.31.4
19922.12.22.32.4

思路分析

行转列:

  1. 使用CASE WHEN语句将根据月份来选择相应的值,并将结果命名为对应的月份(如m1, m2, m3, m4)。
  2. 根据年份进行分组,并使用聚合函数SUM对每个月份的金额进行求和。
  3. 最后使用GROUP BY语句将结果按年份进行分组,并在最终结果集中展示每个月份对应的金额。

答案获取

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

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

相关文章

SpringBoot配置加载机制

目录 前言 官方文档:SpringBoot配置加载机制 外化配置加载顺序 application.properties默认位置 命名风格 Spring Boot 中的 ConfigurationProperties 定制PropertySource 主要步骤 切入位置 加载自定义properties文件 自定义文件(yapf.propert…

PM866-2 3BSE050201R1未来的工业将会更加智能化。

PM866-2 3BSE050201R1未来的工业将会更加智能化。 ​ 从工业到智慧工业,半导体厂商可以做什么? 从第一次工业革命开始到现在,工业领域发生了翻天覆地的变化,现在及未来的工业将会更加智能化。 意法半导体(ST&#xf…

南卡全新开放式OE Pro蓝牙耳机震撼上市,行业新标杆,再迎巅峰

近日,Nank南卡全新发布了一款不入耳开放式蓝牙耳机,创新打破无限可能。根据目前透露,新发布的南卡OE Pro不管是音质还是佩戴舒适度都一如既往的好,比市场内其他品牌的开放式耳机要高出几倍,各大媒体猜测,Na…

AI作画生成器,AI作画的优缺点

AI作画生成器,AI作画生成是一种基于人工智能技术的艺术创作方式,其在过去几年中得到了广泛应用和迅速发展。本文将以此为题,从几个方面来探讨AI作画生成。 一.什么是AI作画生成 AI作画生成,顾名思义,指的是使用人工智…

wifi理论数据速率计算

经常看到这样的数据,下面是802.11n协议,2X2天线的理论数据速率。: 下面我们就来了解下这是怎么计算出来的。 影响因素 速率的计算需要考虑的因素包括:调制方式、码率、子载波个数(带宽和协议模式不同,子载…

RK3399平台开发系列讲解(基础篇)延迟和定时器管理

🚀返回专栏总目录 文章目录 一、标准定时器1.1、jiffy和HZ1.2、定时器API二、高精度定时器(HRT)三、动态Tick/Tickless内核四、内核中的延迟和睡眠4.1、原子上下文4.2、非原子上下文沉淀、分享、成长,让自己和他人都能有所收获!😄 📢时间是继内存之后常用的资源之一。…

细说synchronized 加锁 this 和 class 的区别

介绍 synchronized 是 Java 语言中处理并发问题的一种常用手段,它也被我们亲切的称之为“Java 内置锁”,由此可见其地位之高。然而 synchronized 却有着多种用法,当它修饰不同对象时,其意义也是不同的,下面我们一起来…

macOS Monterey 12.6.5 (21G531) Boot ISO 原版可引导镜像

本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持在 Windows 和 Linux 中创建可引导介质。 2023 年 4 月 10 日(北京…

VIM编辑常用命令

本贴为学习小甲鱼【VIM快速入门】时的笔记,视频链接:【VIM快速入门】《带你学C带你飞》(番外篇) VIM是Linux系统下强大的编辑器,能够方便使用者提升效率。 VIM 具有 6 种基本模式和 5 种派生模式。 基本模式&#xff…

获取淘宝商品分类详情API,抓取淘宝全品类目API接口分享(代码展示、参数说明)

商品分类技巧 淘宝店铺分类怎么设置?我们登录卖家账号的时候,我们看到自己的商品,会想要给商品进行分类,一个好的分类可以帮助提高商品的曝光率。那么在给商品分类前,如果您毫无头绪,以下几点可以给您带来…

Vue.js 2.0 状态管理

类 Flux 状态管理的官方实现 由于多个状态分散的跨越在许多组件和交互间各个角落,大型应用复杂度也经常逐渐增长。为了解决这个问题,Vue 提供 vuex: 我们有受到 Elm 启发的状态管理库。vuex 甚至集成到 vue-devtools,无需配置即可…

详解linux多线程——互斥锁、条件变量、读写锁、自旋锁、信号量

一、互斥锁(同步) 在多任务操作系统中,同时运行的多个任务可能都需要使用同一种资源。这个过程有点类似于,公司部门里,我在使用着打印机打印东西的同时(还没有打印完),别人刚好也在此…

华为ADS 2.0智驾助力阿维塔成为智能电动汽车领军品牌

随着科技的不断发展和智能化的迅速崛起,智能电动汽车已经成为当今汽车行业的热点话题。在这一领域,中国汽车品牌阿维塔科技近日引人瞩目地成为了首批搭载华为ADS 2.0智驾系统的品牌。在2023年4月16日举行的华为智能汽车解决方案发布会上,阿维…

HCIA第二次笔记

目录 OSI/RM七层参考模型——开放式的系统互联参考模型 核心——分层 TCP/IP模型——TCP/IP协议簇 应用层 应用层协议 封装与解封装 传输层 TCP协议和UDP协议的区别 TCP的报文 TCP的三次握手 TCP的四次挥手 TCP的四种可靠传输机制 OSI/RM七层参考模型——开放式的系…

单链表经典面试题 (动图解析)

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…

Lars bak

(1)先从smalltalk说起上回书《阿伦凯(Alan Kay)》咱们说到世界上第一个基于语言虚拟机的编程语言Smalltalk,以及它的创造者:Alan kay。今天我再沿着语言虚拟机这条路,再走向系统虚拟机《虚拟机:IBM-S/360-O…

WebServer项目(一)->计网知识补充

WebServer项目->计网知识补充1.网络结构模式C/S结构B/S结构2.MAC 地址3.IP 地址1)IP 地址编址方式2)A类IP地址3)B类IP地址4)C类IP地址5)D类IP地址(了解)6)特殊的网址7)子网掩码4.端口5.网络模型1)OSI 七层参考模型(Open System Interconnection)2)TCP…

测试开发岗 - 一面复盘

1. 什么是软件测试, 谈谈你对软件测试的了解 软件测试就是验证产品特性是否符合用户需求, 软件测试贯穿于软件的整个生命周期. >>> 那软件测试具体是什么呢 ? 就拿生活中的例子来说, 比如说我们去商场买衣服, 会有以下几个步骤 : 第一步: 我们会走进门店…

SSM版本个人博客系统实现

SSM版本的个人博客系统 文章目录SSM版本的个人博客系统统一的数据返回处理关于前端的一些问题实现注册功能实现登录的功能存储session获取用户的信息获取左侧的个人信息获取右侧的博客列表时间格式化删除操作注销功能(退出登录)查看文章的详情页排查问题…

机器人项目与产品开发

ROS(Robot Operating System) ROS(Robot Operating System)是一个开源的机器人操作系统,旨在为机器人软件开发提供一个通用的、模块化的、分布式的软件平台。ROS由加州大学伯克利分校机器人实验室开发,目前…