数仓学习-----named_struct和collect_set函数

简介: 数仓学习-----named_struct和collect_set函数

hive中的named_struct

named_struct

named_struct类型,主要用这个函数做字段拼接,并且每个字段都可以取别名;

  • 语法结构
  • 用给定的names和values创建一个结构体

在学习的数据仓库的项目中我们需要将一些字段的信息放在一起,

select  
  sku_id,
 named_struct('attr_id',attr_id,'value_id',value_id,'attr_name',attr_name,'value_name',value_name)
from ods_sku_attr_value
where dt='2023-3-14';

collect_set

  • 语法结构
  • collect_set(col)
collect_set(col)
作用:返回没有重复元素的集合;算是聚合函数的一种。
返回结果类型:Array
在上面的查询结果中,我们还可以对有相同sku_id的元素进行聚合,放到同一个Array中。
select
  sku_id,
collect_set(named_struct('sale_attr_id',sale_attr_id,'sale_attr_value_id',sale_attr_value_id,'sale_attr_name',sale_attr_name,'sale_attr_value_name',sale_attr_value_name))
from ods_sku_sale_attr_value
where dt='2020-06-14'
group by sku_id;

结果:(以一行为例)

[{"attr_id":"106","value_id":"176","attr_name":"手机一级","value_name":"安卓手机"},{"attr_id":"107","value_id":"177","attr_name":"二级手机","value_name":"小米"},{"attr_id":"23","value_id":"83","attr_name":"运行内存","value_name":"8G"},{"attr_id":"24","value_id":"82","attr_name":"机身内存","value_name":"128G"}]

相关实践学习
数据库实验室挑战任务-初级任务
本场景介绍如何开通属于你的免费云数据库,在RDS-MySQL中完成对学生成绩的详情查询,执行指定类型SQL。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
2月前
|
存储 Java 索引
JAVA零基础小白学习免费教程day14-Set&HashMap(一)
JAVA零基础小白学习免费教程day14-Set&HashMap
95 0
|
5月前
|
存储 NoSQL API
【Redis 系列】redis 学习四,set 集合,hash 哈希,zset 有序集合初步认知
【Redis 系列】redis 学习四,set 集合,hash 哈希,zset 有序集合初步认知
|
5月前
|
存储 Cloud Native Linux
CMake学习之set
CMake学习之set
|
4月前
|
存储 NoSQL Ubuntu
在Ubuntu上安装Redis并学习使用get、set和keys命令
在Ubuntu上安装Redis并学习使用get、set和keys命令
|
5月前
|
NoSQL 算法 Redis
【Redis 系列】redis 学习十四,sorted_set 初步探究梳理
【Redis 系列】redis 学习十四,sorted_set 初步探究梳理
|
1月前
|
存储 JSON 数据处理
数仓学习---数仓开发之DWD层
数仓学习---数仓开发之DWD
121 6
数仓学习---数仓开发之DWD层
|
1月前
|
存储 NoSQL Java
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
49 0
|
2月前
|
数据挖掘 数据库
数仓学习---数仓开发之DIM层
数仓学习---数仓开发之DIM层 维度建模、维度表介绍、
140 1
|
2月前
|
Java
JAVA零基础小白学习免费教程day14-Set&HashMap(三)
JAVA零基础小白学习免费教程day14-Set&HashMap
36 0
|
2月前
|
存储 Java
JAVA零基础小白学习免费教程day14-Set&HashMap(二)
JAVA零基础小白学习免费教程day14-Set&HashMap
42 0