Hive SQL:实现炸列(列转行)以及逆操作(行转列)

目录

  • 列转行
  • 行转列

列转行

函数:
EXPLODE(ARRAY):将ARRAY中的每一元素转换为每一行
EXPLODE(MAP):将MAP中的每个键值对转换为两行,其中一行数据包含键,另一行数据包含值

数据样例:
在这里插入图片描述

1、将每天的课程,拆成日期和课程单独一条的

-- split(a.concat_lesson, ',') :将concat_lesson转换为array类型
select a.week_type, 
       a.concat_lesson,
       b.data_dup
from
(
select '周一' as week_type, '历史,生物,西方文化' as concat_lesson
union all select '周二','线性代数,数据结构,C语言'
union all select '周三','轮滑'

) as a
lateral view explode(split(a.concat_lesson, ',')) b as data_dup -- 炸列依据,concat_lesson使用逗号分割形成了array,explode函数对array进行处理

结果:
在这里插入图片描述

2、将每天的 课程数 和 瞌睡数拆开,分别和日期形成一行

select a.week_type, 
       a.concat_lesson,
       b.data_dup,
       split(b.data_dup,':')[0] as col_name, -- 提取冒号分割的第一部分
       split(b.data_dup,':')[1] as col_value -- 提取冒号分割的第二部分
from
(
select '周一' as week_type, '课程数:3节,瞌睡数:4次' as concat_lesson
union all select '周二','课程数:2节,瞌睡数:1次'
union all select '周三','课程数:1节,瞌睡数:0次'

) as a
lateral view explode(split(a.concat_lesson, ',')) b as data_dup -- 炸列依据

结果:
这里在进行完列转行后(黄色框),还利用split进一步提取了 信息名称和对应值(绿色框)
在这里插入图片描述

在实际应用中,要炸列的信息(对应上述的concat_lesson)可能不是来自一个字段,可能来自多表的不同字段。这时候可能需要自己构造。类似:

-- concat_lesson中信息不是来自同一个表时,可以借助concat构造
-- 然后再利用上述方式取值,主要应用于构造一维表
select t1.week_type
    ,concat('记录01:课程数:',t1.lesson_count,',',
            '记录02:瞌睡数:',t2.nap_count,',',
            '记录03:天气:',t3.weather) as concat_lesson
from t1 
left join t2 on ...
left join t3 on ...

行转列

CONCAT_WS(STRING SEP, ARRAY ):以指定分隔符SEP将ARRAY中的元素拼接成字符串
COLLECT_LIST(col):将指定列中的数据组合为数组,不去重复数据


select t.name_p,
        concat_ws(',',collect_list(t.hobby)) 
from 
(
 select 'A' AS name_p ,'swim,draw,sing' as hobby
  union all select 'A','run'
  union all select 'B','run'
) as t
group by t.name_p

结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/761868.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

我的世界服务器-高版本服务器-MC服务器-生存服务器-RPG服务器-幻世星辰

生存为主,RPG乐趣为辅,重视每位玩家的建议,一起打造心目中的服务器,与小伙伴一起探险我的世界! 服务器版本: 1.18.2 ~ 1.20.4 Q群: 338238381 服务器官网: 星辰毛毛雨-Minecraft高版本生存服务器我的世界…

C语言入门-指针和数组5

指针和地址 地址 地址是内存中一个特定位置的标识符。每个内存位置都有一个唯一的地址,用于存储数据。这些地址通常表示为十六进制数。 物理地址:硬件层次上的实际内存地址。逻辑地址:程序运行时使用的地址,由操作系统管理。 …

“蓝潮卫士“水位雨量监测一体机,重塑城市防洪新防线!

​ 6月24日,湖南长沙遭遇了一场突如其来的特大暴雨侵袭。天空像破了个口子,雨水倾盆而下,仅仅1小时,就下了54个西湖,降水量突破了历史同期极值。这场暴雨直接导致了严重的城市内涝问题,部分地区瞬间变成一…

强化学习的数学原理:贝尔曼公式

大纲 这一节课程的大纲: 重点 对于这次课,重点是两个东西: Motivating examples(为什么需要贝尔曼公式) 首先要明白,为什么 return 是重要的? 之前其实就说过,return 能够帮助我们评价一个策略是好还是坏…

阿里云:云通信号码认证服务,node.js+uniapp(vue),完整代码

api文档&#xff1a;云通信号码认证服务_云产品主页-阿里云OpenAPI开发者门户 (aliyun.com) reg.vue <template> <div> <input class"sl-input" v-model"phone" type"number" maxlength"11" placeholder"手机号…

几度互联网站群管理系统全媒体解决方案

随着高考的结束&#xff0c;各高校开启了紧张的招生宣传工作&#xff0c;几度互联网站群系统助力各高校招生宣传。 学校官方网站是互联网时代学校对外交流的重要途径和信息公开的主要载体&#xff0c;是展示学校形象、密切联系师生的重要窗口&#xff0c;是加强校园宣传思想工…

2024 年的 13 个 AI 趋势

2024 年的 13 个 AI 趋势 人工智能对环境的影响和平人工智能人工智能支持的问题解决和决策针对人工智能公司的诉讼2024 年美国总统大选与人工智能威胁人工智能、网络犯罪和社会工程威胁人工智能治疗孤独与对人工智能的情感依赖人工智能影响者中国争夺人工智能霸主地位人工智能…

LVGL实现字库的下载和使用

1 字库 字库的概念&#xff1a;相应文字或字符的合集。 点阵字库&#xff1a;按字库顺序排列的字符/汉字字模的合集。 LVGL中字库使用Unicode编码&#xff0c;Unicode 是全球文字统一编码。它把世界上的各种文字的每一个字符指定唯一编码&#xff0c;实现跨语种、跨平台的应…

分体式天线的应用介绍

分体式天线的主要应用广泛且多样化&#xff0c;以下是对其主要应用的归纳&#xff1a; 1、仓储管理 在RFID仓储项目中&#xff0c;使用性能好的RFID分体式天线可以确保系统的稳定性&#xff0c;更能够降低整个项目的成本。 分体式天线通过其多个天线接口与分体式读写器连接&…

K-Planes代码记录

随记 原文 K-Planes: Explicit Radiance Fields in Space, Time, and Appearance&#xff0c;又要换baseline&#xff0c;可是效果不好能怎么办呢&#xff0c;我可不可以发疯。k-planes的代码又是非常工程琐碎的&#xff0c;大佬的代码果然不顾小白死活。随便记录下整个过程。…

哪个牌子的超声波清洗器好?精选四大超强超声波清洗机力荐

生活中戴眼镜的人群不在少数&#xff0c;然而要维持眼镜的干净却不得不每次都需要清洗&#xff0c;只是通过手洗的方式实在太慢并且容易操作不当让镜片磨损更加严重&#xff01;所以超声波清洗机就诞生了&#xff01;超声波清洗机能够轻松清洗机眼镜上面的油脂污渍&#xff0c;…

Spire.PDF for .NET【文档操作】演示:在 PDF 中创建目录 (TOC)

目录在增强文档的可读性和可导航性方面起着至关重要的作用。它为读者提供了文档结构的清晰概述&#xff0c;使他们能够快速找到并访问他们感兴趣的特定部分或信息。这对于较长的文档&#xff08;例如报告、书籍或学术论文&#xff09;尤其有价值&#xff0c;因为读者可能需要多…

国产压缩包工具——JlmPackCore SDK说明(二)——JlmPack_Create函数说明

一、JlmPack_Create函数说明 JlmPack_Create函数是创建jlm压缩文件的核心函数&#xff0c;最大允许CATALOG_MAX_LIMIT&#xff08;请参考Config.h&#xff09;个目录&#xff0c;意思是包括文件夹和文件在内&#xff0c;遍历整个列表最大允许CATALOG_MAX_LIMIT个目录对象&#…

【Unity小技巧】Unity字典序列化

字典序列化 在 Unity 中&#xff0c;标准的 C# 字典&#xff08;Dictionary<TKey, TValue>&#xff09;是不能直接序列化的&#xff0c;因为 Unity 的序列化系统不支持非 Unity 序列化的集合类型。可以通过手写字典实现 效果&#xff1a; 实现步骤&#xff1a; 继承ISe…

2024年制冷与空调设备运行操作证模拟考试题库及制冷与空调设备运行操作理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年制冷与空调设备运行操作证模拟考试题库及制冷与空调设备运行操作理论考试试题是由安全生产模拟考试一点通提供&#xff0c;制冷与空调设备运行操作证模拟考试题库是根据制冷与空调设备运行操作最新版教材&#…

振弦采集仪的工程安全监测实践与案例分析

振弦采集仪的工程安全监测实践与案例分析 振弦采集仪是一种常用的工程安全监测仪器&#xff0c;通过测量被监测结构的振动频率与振型&#xff0c;可以实时监测结构的安全状况。本文将结合实践经验和案例分析&#xff0c;探讨振弦采集仪在工程安全监测中的应用。 一&#xff0c…

奔驰G350升级原厂自适应悬挂系统有哪些作用

奔驰 G350 升级自适应悬挂系统后&#xff0c;可根据行车路况自动调整悬架高度和弹性&#xff0c;从而提升驾乘的舒适性和稳定性。 这套系统的具体功能包括&#xff1a; • 多种模式选择&#xff1a;一般有舒适、弯道、运动及越野等模式。例如&#xff0c;弯道模式在过弯时能为…

elk对于集群实例的日志的整合-基于logstash采集日志

说明&#xff1a;基于logstash采集日志 环境&#xff1a; 物理机192.168.31.151 一.启动2个测试实例&#xff0c;每5-10s随机生成一条订单日志 实例一 包位置&#xff1a;/home/logtest/one/log-test-0.0.1-SNAPSHOT.jar 日志位置:/docker/elastic/logstash_ingest_data/l…

塑造卓越企业家IP:多维度视角下的策略解析

在构建和塑造企业家IP的过程中&#xff0c;我们需要从多个维度进行考量&#xff0c;以确保个人品牌能够全面、立体地展现企业家的独特魅力和价值。以下是从不同角度探讨如何做好一个企业家IP的策略。 一、从个人特质出发 深入了解自我&#xff1a;企业家需要清晰地认识到自己的…