当前位置: 首页 > 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: 通过深度神经网络实现人类姿态估计
  • 甘肃临夏州政协委员马全成涉嫌诈骗罪,被撤销政协委员资格
  • 陈燮阳从艺60周年:指挥棒不停,心跳就不会老去
  • 爱彼迎:一季度总收入约23亿美元,将拓展住宿以外的新领域
  • 重庆市大渡口区区长黄红已任九龙坡区政协党组书记
  • 政府效率部效果不佳?马斯克有意寻求支持,含糊表态部门未来
  • 美国季度GDP时隔三年再现负增长,特朗普政府关税政策对美国经济负面影响或将持续