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

如何使用HiveSQL实现2个字符串间的映射及排序

这里写自定义目录标题


有2个表,1个表user_class存在2个字段:class,codes,另一个表user_info有2个字段:code,name。
期望返回每个class的codes及names,codes按照正序排序,names和codes顺序保持一致?

with user_class as (select 'A' as class,'2\|1\|3' as codesunion all select 'B' as class,'2\|1' as codes
),
user_info as (select '1' as code,'TOM' as nameunion allselect '2' as code,'Jim' as nameunion allselect '3' as code,'An' as name
)
select w.class,regexp_replace(w.code,'[0-9]+_','') code,regexp_replace(w.name,'[0-9]+_','') name from (
select r.class,concat_ws(',',sort_array(collect_list(r.code))) code,concat_ws(',',sort_array(collect_list(r.name))) name
from (
select s.class,concat(lpad(s.rnt,4,'0'),'_',s.code) code,concat(lpad(s.rnt,4,'0'),'_',s.name) name
from (
select t1.class,t1.code,t2.name,row_number() over(partition by t1.class order by t1.code) rnt from (
selectt.class,s.code
from user_class t 
lateral view posexplode(split(codes,'\\|')) s as pos,code
) t1
left join
(select code,name
from user_info) t2
on t1.code = t2.code
) s
) r group by r.class
) w

实现结果如下:在这里插入图片描述

相关文章:

  • 9. Spring AI 各版本的详细功能与发布时间整理
  • 平流层通信系统的深度论述:其技术成熟将推动通信范式从“地面-卫星”二元架构向“地-空-天”三维融合跃迁
  • 湖仓融合的“最后一公里”:StarRocks 存算分离如何优化湖上实时分析?
  • 【Java】多线程_创建线程的四种方式
  • 力扣第451场周赛
  • Java 的 synchronized
  • 在 Ubuntu linux系统中设置时区的方案
  • React从基础入门到高级实战:React 核心技术 - React Router:路由管理
  • 【操作系统】-4.3.1文件的层次结构
  • 计算机网络技术(二)
  • DAY33 简单神经网络
  • Leetcode 1651. Hopper 公司查询 III
  • 【NIPS 2024】Towards Robust Multimodal Sentiment Analysis with Incomplete Data
  • quill 富文本多张图片排序
  • 大语言模型的完整训练周期从0到1的体系化拆解
  • CS学习网站-geeksforgeeks介绍
  • 历年安徽大学保研上机真题
  • 原生php单元测试
  • Kafka 的日志清理策略:delete 和 compact
  • 决策引擎与规则引擎在交易所业务风控中的建设思路、架构设
  • 免费学做衣服的网站/新手seo要学多久
  • 网站大数据怎么做/广州seo做得比较好的公司
  • 用自己电脑做外网访问网站/自动点击器安卓
  • 网站建设熊掌号里属于什么领域/seo谷歌外贸推广
  • 苏州建站之家/百度指数电脑端查询
  • 组织建设是什么意思/seo搜索引擎优化人才