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

Hive与PrestoSQL中的并列列转行

并列列转行

    • 1、背景描述
    • 2、Hive实现
    • 3、PrestoSQL实现



1、背景描述


通常我们在处理数据时,如果遇到一个字段存储多个值,常常需要把一行数据转换为多行数据,形成标准的结构化数据

例如,将下面的两列数据并列转换为三行,使得codename一一对应的

idcodename
1a、b、cA、B、C

2、Hive实现


使用Hive的lateral view posexplode实现

select id, pos1, sub_code, pos2, sub_name from tmp
lateral view posexplode(split(code,'、')) v1 as pos1, sub_code
lateral view posexplode(split(name,'、')) v2 as pos2, sub_name
where id='1' and pos1=pos2

3、PrestoSQL实现


使用PrestoSQL的cross join unnest实现


with temp1 as(
  select id,sub_name,row_number() over() rn
  from temp
  cross join unnest(split(code, '、'))  as t (sub_name)
  where id='1'),
temp2 as (
  select id,sub_code,row_number() over() rn
  from temp
  cross join unnest(split(name, '、')) as t (sub_code)
  where id='1')
select * 
from temp1
left join temp2 
on temp1.rn = temp2.rn

http://www.kler.cn/a/228388.html

相关文章:

  • MySQL(4)多表查询
  • solidity基础 -- 存储类型
  • 第11篇:vue3 中 props 的使用
  • 备赛蓝桥杯之第十五届职业院校组省赛第二题:分享点滴
  • 论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(一)
  • 一文了解如何在Qt中间集成Halcon窗口并在子线程显示(附工程源码下载链接)
  • 【C++历练之路】二叉搜索树的学习应用及其实现
  • flask_django_python五金电商网络营销的可视化分析研究
  • 使用 PyTorch 构建 NLP 聊天机器人
  • 详解SkyWalking前端监控的性能指标
  • 【MySQL】- 09 Select Count
  • 惠普公司也要注销了?
  • JAVA Web 学习(五)Nginx、RPC、JWT
  • WordPress Plugin HTML5 Video Player SQL注入漏洞复现(CVE-2024-1061)
  • 设转电源线、转接线设计
  • Chrome扩展开发纪要
  • 2024年【广东省安全员C证第四批(专职安全生产管理人员)】考试题库及广东省安全员C证第四批(专职安全生产管理人员)考试资料
  • 2024年【T电梯修理】考试及T电梯修理免费试题
  • sqli-labs-master靶场训练笔记(21-38|精英级)
  • 深度学习系列56:使用whisper进行语音转文字
  • 【Java 数据结构】优先级队列(堆)
  • 重写Sylar基于协程的服务器(7、TcpServer HttpServer的设计与实现)
  • 【Linux】信号-上
  • 【C++】C++入门 — 类和对象初步介绍
  • 【微信小程序】微信小程序开发:从入门到精通
  • 红队渗透靶机:TIKI: 1