当前位置: 首页 > news >正文

SQL进阶技巧:如何不使用union all进行行转列?【三种方法实现】

目录

0 前言

1 需求描述

 2 数据准备

3 数据分析

   3.1 lateral view explode(array()) 方法

   3.2 使用stack()方法

   3.3  lateral view inline(array(struct<>))

4 小结


0 前言

       行转列一直是SQL开发常见的数据结构转换方式,一般最普遍的方法就是采用union all的形式,但这种方式代码重复片段太多,写法不够优雅。本文采用hive sql的形式给出了三种行转列的方法,分别利用hive中的explode()、inline()、及stack()函数进行转换。

      这里首先声明,行转列与列转行的定义,主要是以矩阵转置的概念来看,我们把多列组成的一行数据称为行向量,把该行向量变换为多行一列(列向量)的过程称为行转列,相反的把列向量(多行一列)转换为行向量(多列一行)的过程称为列转行。那么有同学会问在hive中,经常会把多行数据按照指定的分隔符合并成一列,这种也属于列转行吗?为了区分,我们统一把这种操作方式叫多行转一行,或者叫数据合并过程(collect_list()),而把该过程的逆过程称为一行转多行,或称为数据展开过程(explode(),flatmap())。

1 需求描述

已知学生成绩表如下,分别有三个科目英语、数学、历史&#

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【机器学习】深度学习实践
  • tea-入土为安的第十七天
  • 基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
  • [C++][opencv]基于opencv实现photoshop算法图像剪切
  • Java的jdk配置成功,但是输入java -version等,命令行没有任何反应
  • 【区块链+商贸零售】吾卡数字预付式消费服务平台 | FISCO BCOS应用案例
  • SpringBoot-配置加载顺序
  • servlet的执行顺序
  • 健韵坊(详细项目实战一)Spring系列 + Vue3
  • 探索AWS免费资源:无账号也能体验云计算魅力
  • 网络协议七 应用层 DNS协议 和 DHCP协议 这两个都了解就好
  • ffmpeg的基础命令
  • 基于IMX8M_plus+FPGA+AI监护仪解决方案
  • STM32cubeMX配置Systick的bug
  • js原生模板引擎
  • JavaScript 如何正确处理 Unicode 编码问题!
  • JS 中的深拷贝与浅拷贝
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 4个实用的微服务测试策略
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Java-详解HashMap
  • Joomla 2.x, 3.x useful code cheatsheet
  • Kibana配置logstash,报表一体化
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • PaddlePaddle-GitHub的正确打开姿势
  • PAT A1092
  • SQLServer之索引简介
  • vue--为什么data属性必须是一个函数
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 聊聊flink的TableFactory
  • 七牛云假注销小指南
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 如何优雅地使用 Sublime Text
  • 中文输入法与React文本输入框的问题与解决方案
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #Linux(make工具和makefile文件以及makefile语法)
  • (02)Hive SQL编译成MapReduce任务的过程
  • (13)Hive调优——动态分区导致的小文件问题
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (CPU/GPU)粒子继承贴图颜色发射
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (黑马点评)二、短信登录功能实现
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (五)activiti-modeler 编辑器初步优化
  • .Mobi域名介绍
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .Net8 Blazor 尝鲜
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @RequestMapping用法详解
  • [ Algorithm ] N次方算法 N Square 动态规划解决