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

map_from_arrays和map_from_entries函数

目录

  • map_from_arrays函数
  • 示例
  • map_from_entries函数
  • 示例

map_from_arrays函数

MAP_FROM_ARRAYS函数用于从两个数组(一个作为键,一个作为值)创建一个Map。

语法:

MAP_FROM_ARRAYS(keys, values)

参数:
keys: 一个数组,包含Map的键。
values: 一个数组,包含Map的值。

要求:
两个数组必须具有相同的长度。
键数组不能包含null元素,且键必须是基本数据类型(不能是复杂类型如数组、映射、结构体)。
值数组可以包含null元素。
如果键重复,后面的键值对会覆盖前面的。
如果数组长度不一致,会抛出错误。

示例

SELECT MAP_FROM_ARRAYS(ARRAY('name', 'age', 'city'),ARRAY('Alice', 30, 'New York')
) AS profile;-- 结果: {"name":"Alice","age":30,"city":"New York"}SELECT user_id,MAP_FROM_ARRAYS(ARRAY('avg_session', 'purchase_count', 'last_active'),ARRAY(ROUND(avg_session_duration, 2),purchase_count,last_active_date)) AS user_features
FROM user_behavior;

map_from_entries函数

MAP_FROM_ENTRIES函数。该函数用于将一个包含键值对的结构体数组转换为一个Map对象。每个结构体通常包含两个字段:第一个字段作为键,第二个字段作为值。

语法:

MAP_FROM_ENTRIES(array_of_entries)

参数:
array_of_entries:一个数组,数组中的每个元素都是具有两个字段的结构体。第一个字段是键,第二个字段是值。

注意点:

键不能为NULL,且必须是基本数据类型(不能是复杂类型)。
值可以为NULL,且可以是任意类型。
如果存在重复的键,则后面的键值对会覆盖前面的(保留最后一个)。

示例

SELECT MAP_FROM_ENTRIES(ARRAY(STRUCT('name', 'Alice'),STRUCT('age', 30),STRUCT('city', 'New York'))
) AS profile;-- 结果: {"name":"Alice","age":30,"city":"New York"}SELECT user_id,MAP_FROM_ENTRIES(ARRAY(STRUCT('avg_session', ROUND(avg_session_duration, 2)),STRUCT('purchase_count', purchase_count),STRUCT('last_active', last_active_date))) AS user_features
FROM user_behavior;
http://www.dtcms.com/a/392731.html

相关文章:

  • 【EE初阶 - 网络原理】网络基本原理
  • 计算机毕设选题+技术栈选择推荐:基于Python的家教预约管理系统设计
  • 密码实现安全:形式化验证技术解析及主流工具实践
  • 并发编程的“造物主“函数——`pthread_create`
  • Python如何开发游戏
  • 新手向 算法 插入排序-yang
  • 2.0、机器学习-数据聚类与分群分析
  • 无痛c到c++
  • QTableWidget 控件入门
  • 【HarmonyOS】HMRouter配置与基本使用
  • 数据驱动下的实验设计与方差分析:从技术落地到方法论升维
  • 深度学习中的池化、线性层与激活函数
  • 【脑电分析系列】第22篇:EEG情绪识别与脑机接口(BCI)应用案例:机器学习与深度学习的实战
  • 深度学习知识点
  • 【pdf】如何将网页转换为pdf?
  • 家庭劳务智能机器人:从“科幻设想”到“推门而入”还有多远?
  • C++后台开发工具链实战
  • PortAudio--Cross-platform Open-Source Audio I/O Library
  • Oracle根据日期进行查询
  • 【C#】C# 中 `ProcessStartInfo` 详解:启动外部进程
  • Python快速入门专业版(三十六):Python列表基础:创建、增删改查与常用方法(15+案例)
  • 微服务项目->在线oj系统(Java-Spring)----5.0
  • 【读书笔记】《鲁迅传》
  • Python 基础:列表、字符串、字典和元组一些简单八股
  • C++ 运算符重载:类内与类外重载详解
  • 【java】jsp被截断问题
  • 在Windows10 Edge浏览器里安装DeepSider大模型插件来免费使用gpt-4o、NanoBanana等AI大模型
  • 车联网网络安全:技术演进与守护智能出行
  • 网络原理-传输层补充1
  • Amber `rism1d` 深度解析与实战教程