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

如何用collect_set等函数实现map结构的数据

目录

  • 1.数据准备
  • 2.集合表示
  • 3.字符串表示
  • 4.map形式表示

1.数据准备

with temp_1 as (
    select 'zhangsan' as name , 'bj' as area,'math' as course , 88 as score

    union all 

    select 'lisi' as name , 'bj' as area,'math' as course , 99 as score

    union all 

    select 'wangwu' as name , 'sh' as area,'chinese' as course , 92 as score

    union all 

    select 'zhaoliu' as name , 'sh' as area,'chinese' as course , 78 as score

    union all 

    select 'tainqi' as name , 'bj' as area,'chinese' as course , 60 as score
)

select 
name
,area
,course
,score
from temp_1

结果如下:

name	area	course	score
tainqi	bj	chinese	60
wangwu	sh	chinese	92
zhaoliu	sh	chinese	78
lisi	bj	math	99
zhangsan	bj	math	88

2.集合表示

select 
course
,collect_set(score)
,collect_set(name)
from  temp_1
group by 
course

结果如下:

chinese	[92,60,78]	["zhaoliu","wangwu","tainqi"]
math	[88,99]	["zhangsan","lisi"]

3.字符串表示

select 
course
,concat_ws(',',collect_set(score))
,concat_ws(',',collect_set(name))
from  temp_1
group by 
course

结果如下:

math	99,88	lisi,zhangsan
chinese	92,60,78	wangwu,zhaoliu,tainqi

4.map形式表示

select 
course
,concat('{"',concat_ws('","',collect_set(concat(name,'":"',score))),'"}') indica_tr
,str_to_map(concat_ws(',',collect_set(concat(name,'=',score ))),',','=') indica_map
from  temp_1
group by 
course

结果如下:

math	{"lisi":"99","zhangsan":"88"}	{"lisi":"99","zhangsan":"88"}
chinese	{"tainqi":"60","zhaoliu":"78","wangwu":"92"}	{"tainqi":"60","wangwu":"92","zhaoliu":"78"}

相关文章:

  • Java面向对象编程进阶:深入理解static、单例模式与继承
  • 以太坊AI代理与PoS升级点燃3月市场热情,2025年能否再创新高?
  • 列表动态列处理
  • 使用 Clang API 编译 C++
  • Flink之水印(watermark)的补充理解
  • Dynamics 365 启用用户安全角色变更的审核功能
  • Python进行深度学习来处理包含900天太阳相关数据的数据集并完成预测,同时开发用户界面的详细示例
  • 《Java SQL 操作指南:深入理解 Statement 用法与优化》
  • LeetCode 热题 100_前 K 个高频元素(73_347_中等_C++)(堆)(哈希表+排序;哈希表+优先队列(小根堆))
  • buu-ciscn_2019_ne_5-好久不见50
  • 学习threejs,使用MeshFaceMaterial面材质容器
  • Java泛型程序设计使用方法
  • 探索 C 语言枚举类型的奇妙世界
  • 【NLP 37、实践 ⑨ NER 命名实体识别任务 LSTM + CRF 实现】
  • Language Models are Few-Shot Learners,GPT-3详细讲解
  • petalinxu 在zynq的FPGA下的ST7735S的驱动配置
  • 射频辐射干扰:变频器电缆的电磁天线效应
  • 9-1 USART串口协议
  • C语言高级进阶4
  • WinSW-x64(2.12.0)将nginx注册为服务可能有bug
  • 陈龙带你观察上海生物多样性,纪录片《我的城市邻居》明播出
  • 上海肺科医院院长陈昶:临床中的痛点,正是新技术诞生的起点
  • 十大券商看后市|A股指数有望进一步缓步推高,淡化短期波动
  • 视觉周刊|走进变革中的博物馆
  • 天问二号探测器顺利转入发射区
  • 江南考古文脉探寻