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

ops/2024/9/24 7:23:51/

目录

0 前言

1 需求描述

 2 数据准备

数据分析

   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 需求描述

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


http://www.ppmy.cn/ops/94900.html

相关文章

酒店行业如何利用XML进行营销短信

随着信息社会的到来&#xff0c;消费者获得会所的服务也从单纯的电话方式&#xff0c;逐渐转变为电话、互联网、传真&#xff0c;群发短信等多种媒体并行的方式。今天着重介绍下酒店行业如何利用短信平台进行营销。 群发短信业务对酒店起到的效率&#xff1a;根据新产品或服务向…

Android中解决fi、fl字符显示时连在一起的问题

在某些手机或设置某些字体时&#xff0c;会出现fi、fl字符显示的时候连在一起&#xff0c;具体来说就是&#xff1a; f和i这两个字符在一起的时候&#xff0c;i上方的点跟f上方的钩子末端重合了&#xff1b; f和l这两个字符在一起的时候&#xff0c;l顶端和f的钩子末端重合了。…

netCDF文件预览(nc格式)

1.工具下载 软件下载&#xff1a;https://download.csdn.net/download/qq_34321590/89645482 2.java11环境安装 需要安装java11以上版本 安装包下载&#xff1a; https://download.csdn.net/download/qq_34321590/89645487 安装步骤&#xff1a; 1.解压 2.配置环境变量 在…

VMware虚拟机下安装Ubuntu22.04以及汉化配置保姆级教程

目录 一.VMware和Ubuntu下载 二.在VMware中创建Ubuntu 1.点击 创建新的虚拟机 2.选择典型 3.选择Ubuntu镜像包&#xff08;自定义存放的位置&#xff09; 4.创建个人信息&#xff08;密码一定要牢记&#xff09; 5.选择虚拟机的安装位置 6.其他配置项&#xff08;默认下…

智能分析/视频汇聚EasyCVR安防视频融合管理云平台技术优势分析

安防行业的发展历程主要围绕视频监控技术的不断改革升级&#xff0c;从最初的模拟监控到数字监控&#xff0c;再到高清化、网络化监控&#xff0c;直至现在的智能化监控&#xff0c;每一次变革都推动了行业的快速发展。特别是近年来&#xff0c;随着AI、大数据、物联网等技术的…

容器引擎说明——Contianerd与Docker的区别以及Containerd换源操作

容器引擎是Kubernetes最重要的组件之一&#xff0c;负责管理镜像和容器的生命周期。Kubelet通过Container Runtime Interface (CRI) 与容器引擎交互&#xff0c;以管理镜像和容器。 表1 容器引擎对比 Containerd和Docker组件常用命令对比 表2 镜像相关功能 表3 容器相关功…

观察者模式(ObserverPattern)

文章目录 1.观察者模式定义2.UML类图3.实现代码 1.观察者模式定义 定义一种订阅机制&#xff0c; 可在对象事件发生时通知多个 “观察” 该对象的其他对象 如果你订阅了一份杂志或报纸&#xff0c; 那就不需要再去报摊查询新出版的刊物了。 出版社 &#xff08;即应用中的 “…

【数据结构】算法复杂度

目录 正文开始 1. 数据结构前⾔ 1.1 数据结构 数据结构(Data Structure)是计算机存储、组织数据的⽅式&#xff0c;指相互之间存在⼀种或多种特定关系的数据元素的集合。没有⼀种单⼀的数据结构对所有⽤途都有⽤&#xff0c;所以我们要学各式各样的数据结构&#xff0c; 如&a…