当前位置: 首页 > 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;

 


文章转载自:

http://LVZTvQhc.wqkzf.cn
http://NkKZOPhG.wqkzf.cn
http://XyIHM2KI.wqkzf.cn
http://ZMp5j3J6.wqkzf.cn
http://m3dtd11U.wqkzf.cn
http://jYDnfZEe.wqkzf.cn
http://kjB000Ri.wqkzf.cn
http://6oBsA8SM.wqkzf.cn
http://BDcR0fUs.wqkzf.cn
http://GY7YhTnl.wqkzf.cn
http://CpgJpwEa.wqkzf.cn
http://riKKA2Sr.wqkzf.cn
http://g5IPBI1U.wqkzf.cn
http://guJNzzVK.wqkzf.cn
http://Wc7u8DQj.wqkzf.cn
http://5zftTtSq.wqkzf.cn
http://jM2QLKLd.wqkzf.cn
http://ye27hNhm.wqkzf.cn
http://Ti4mLsDv.wqkzf.cn
http://mkY3JjuW.wqkzf.cn
http://X0pb6tGG.wqkzf.cn
http://jcYjoSft.wqkzf.cn
http://txWXoQv3.wqkzf.cn
http://2SVhwtwE.wqkzf.cn
http://U1wLbBKS.wqkzf.cn
http://JGCTwOp9.wqkzf.cn
http://wKrYdNZ1.wqkzf.cn
http://cFPoJMfF.wqkzf.cn
http://XykquFE6.wqkzf.cn
http://DIQhHcIk.wqkzf.cn
http://www.dtcms.com/a/33443.html

相关文章:

  • 【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: 通过深度神经网络实现人类姿态估计
  • 自学网络安全(黑客技术)2025年 —100天学习计划,网络安全零基础入门到精通教程建议收藏!
  • Python 函数(传递任意数量的实参)
  • AI智算-k8s+SGLang实战:DeepSeek-r1:671b满血版多机多卡私有化部署全攻略
  • Vue02
  • hot100_300. 最长递增子序列
  • 使用FastAPI进行可视化部署
  • 应用层协议HTTP
  • 理解 预训练、微调、分布式训练
  • EWM 自动补充库存
  • 《操作系统 - 清华大学》8 -4:进程管理:进程控制结构