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

拼接:concat、concat_ws和形成集合collect_set、collect_list用法

学习三个函数:
concat 进行字符串拼接
collect_set() 将分组的数据变成一个set集合。里面的元素是不可重复的。
collect_list(): 里面是可以重复的。
concat_ws(分隔符,集合) : 将集合中的所有元素通过分隔符变为字符串。

 实例:

需求:
-- 将下面的数据格式
zhangsan        chinese 90
zhangsan        math    87
zhangsan        english 63
zhangsan        nature  76
lisi    chinese 60
lisi    math    30
lisi    english 78
lisi    nature  0
wangwu  chinese 89
wangwu  math    25
wangwu  english 81
wangwu  nature  9
-- 转成:
zhangsan chinese:90,math:87,english:63,nature:76
lisi chinese:60,math:30,english:78,nature:0
wangwu chinese:89,math:25,english:81,nature:9

 (行转列)

 

select name,concat(subject,":",cj) from map_temp;

结果:
name    _c1
zhangsan        chinese:90
zhangsan        math:87
zhangsan        english:63
zhangsan        nature:76
lisi    chinese:60
lisi    math:30
lisi    english:78
lisi    nature:0
wangwu  chinese:89
wangwu  math:25

以上这个结果再合并:
select name,collect_set(concat(subject,":",cj)) from map_temp
group by name;

lisi    ["nature:0","english:78","math:30","chinese:60"]
wangwu  ["math:25","chinese:89"]
zhangsan        ["nature:76","english:63","math:87","chinese:90"]
将集合中的元素通过逗号进行拼接:
select name,concat_ws(",",collect_set(concat(subject,":",cj))) from map_temp group by name;

结果:
zhangsan chinese:90,math:87,english:63,nature:76
lisi chinese:60,math:30,english:78,nature:0
wangwu chinese:89,math:25,english:81,nature:9

 想将数据变为:

lisi    {"chinese":"60","math":"30","english":"78","nature":"0"}
wangwu  {"chinese":"89","math":"25"}
zhangsan        {"chinese":"90","math":"87","english":"63","nature":"76"}

 需求:将字符串变为map集合  使用一个函数 str_to_map

 select name,str_to_map(concat_ws(",",collect_set(concat(subject,":",cj)))) from map_temp group by name;

 

相关文章:

  • 【Linux】基于UDP/TCP服务器与客户端的实现
  • 第46天:Web开发-JavaEE应用原生和FastJson反序列化URLDNS链JDBC链Gadget手搓
  • 使用 Power Automate 转换 HTML to PDF
  • 迎接DeepSeek开源周[Kimi先开为敬]发布开源最新优化技术
  • XML(eXtensible Markup Language)
  • 在Dify中实现联网检索功能(模拟DeepSeek)
  • 计算机组成原理第四——指令
  • 人工智能、机器学习、深度学习和大语言模型之间的关系
  • C语言基础要素:安装 Visual Studio 2022
  • 代码随想录day19
  • 透彻理解:方差、协方差、相关系数、协方差矩阵及其应用
  • springBoot统一响应1.0版本
  • DataWhale组队学习 wow-agent task4
  • 四、综合案例(Unity2D)
  • 浏览器下载vue.js.devtools,谷歌浏览器和edg浏览器
  • DeepSeek学习教程 从入门到精通pdf下载:快速上手 DeepSeek
  • Spring MVC配置文件
  • 【Linux】Linux线程互斥与同步(接口篇)
  • Spring 容器
  • 【三十四周】文献阅读:DeepPose: 通过深度神经网络实现人类姿态估计
  • 谁将主导“视觉大脑”?中国AI的下一个超级赛道
  • 魔都眼丨人形机器人“华山论剑”:拳击赛缺席,足球赛抢镜
  • 记录发生真相,南沙岛礁生态调查纪实片《归巢》发布
  • 政企研合力,科学监测分析服务消费
  • 84%白化!全球珊瑚正经历最严重最大范围白化现象
  • 俄外长拉夫罗夫将出席金砖国家外长会