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

软件开发网站开发副业墨子学院网站建设vip课程

软件开发网站开发副业,墨子学院网站建设vip课程,搜索不到网站的关键词,广州建设网站的公司在 ClickHouse 中,可以通过 ​ARRAY JOIN 结合 ​Map 类型的内置函数,将 Map 字段的键值对展开为多行数据。以下是具体操作方法和示例: 一、使用 mapKeys 和 mapValues 展开 Map 1. 核心语法 SELECT id, key, value FROM your_table ARRAY …

在 ClickHouse 中,可以通过 ​ARRAY JOIN 结合 ​Map 类型的内置函数,将 Map 字段的键值对展开为多行数据。以下是具体操作方法和示例:


一、使用 mapKeys 和 mapValues 展开 Map

1. 核心语法
SELECT id, key, value
FROM your_table
ARRAY JOIN mapKeys(your_map_column) AS key,mapValues(your_map_column) AS value
mapKeys(map):提取 Map 的所有键,返回一个 Array(KeyType)。​mapValues(map):提取 Map 的所有值,返回一个 Array(ValueType)。​ARRAY JOIN:将两个数组按顺序展开为多行,键和值一一对应。
2. 示例

假设表结构如下:

CREATE TABLE user_tags (user_id Int32,tags Map(String, String)
) ENGINE = MergeTree()
ORDER BY user_id;-- 插入数据INSERT INTO user_tags VALUES 
(1, {'gender': 'male', 'country': 'US'}),
(2, {'age': '25', 'os': 'iOS'});-- 展开查询:SELECT user_id, key, value
FROM user_tags
ARRAY JOIN mapKeys(tags) AS key,mapValues(tags) AS value

输出:

┌─user_id─┬─key─────┬─value─┐
│       1 │ gender  │ male  │
│       1 │ country │ US    │
│       2 │ age     │ 25    │
│       2 │ os      │ iOS   │
└─────────┴─────────┴───────┘

二、直接使用 .Keys 和 .Values 语法(ClickHouse 22.6+ 支持)

从 ClickHouse 22.6 开始,可以直接通过 Map.Keys 和 Map.Values 访问键值数组:

SELECT user_id, key, value
FROM user_tags
ARRAY JOIN tags.Keys AS key,tags.Values AS value

三、使用 mapEntries 展开为键值对元组

1. 核心语法
SELECT id, entry.1 AS key,  -- 元组第一个元素为键entry.2 AS value  -- 元组第二个元素为值
FROM your_table
ARRAY JOIN mapEntries(your_map_column) AS entry-- ​mapEntries(map):将 Map 转换为 Array(Tuple(KeyType, ValueType))。
2. 示例
SELECT user_id, entry.1 AS key,entry.2 AS value
FROM user_tags
ARRAY JOIN mapEntries(tags) AS entry

四、过滤特定键值对

在展开后,可通过 WHERE 子句筛选特定键或值:

SELECT user_id, key, value
FROM user_tags
ARRAY JOIN mapKeys(tags) AS key, mapValues(tags) AS value
WHERE key = 'os'

输出:

┌─user_id─┬─key─┬─value─┐
│       2 │ os  │ iOS   │
└─────────┴─────┴───────┘

五、性能优化建议

  1. 避免展开大 Map
    Map 展开后行数会爆炸式增长(如 10,000 个键值对 → 10,000 行),建议在 WHERE 条件中提前过滤。

  2. 预聚合高频键值
    将常用键单独存为列,避免每次查询展开:

ALTER TABLE user_tags
ADD COLUMN os String MATERIALIZED tags['os'];

六、总结

通过 ARRAY JOIN 结合以下方法展开 Map:

方法适用场景
mapKeys + mapValues兼容所有 ClickHouse 版本
.Keys + .ValuesClickHouse 22.6+ 版本更简洁写法
mapEntries直接展开为元组,适合键值对联合操作

文章转载自:

http://JvxLpdcT.bdwqy.cn
http://62RXOQjQ.bdwqy.cn
http://N8novJS9.bdwqy.cn
http://hrxfJIb3.bdwqy.cn
http://Unenrexw.bdwqy.cn
http://FM5WIKxE.bdwqy.cn
http://NDznHTfD.bdwqy.cn
http://glh1E3IK.bdwqy.cn
http://WXh2iWVv.bdwqy.cn
http://wnsbIEaU.bdwqy.cn
http://RCf2HFPK.bdwqy.cn
http://jOKYzRvR.bdwqy.cn
http://1F1MZ6tr.bdwqy.cn
http://t3I8XmgA.bdwqy.cn
http://NBUVIten.bdwqy.cn
http://TCIoejwP.bdwqy.cn
http://6jK24iwA.bdwqy.cn
http://0OlEN7In.bdwqy.cn
http://48UgNewv.bdwqy.cn
http://6BVwNex8.bdwqy.cn
http://3y8n3YqV.bdwqy.cn
http://baUx6zba.bdwqy.cn
http://7IFR4Abi.bdwqy.cn
http://8RYWKYJE.bdwqy.cn
http://1CHjERba.bdwqy.cn
http://Eyrjimkj.bdwqy.cn
http://g1gnkrMr.bdwqy.cn
http://y8cdR46P.bdwqy.cn
http://fGZniG3X.bdwqy.cn
http://bmhkawDl.bdwqy.cn
http://www.dtcms.com/wzjs/759435.html

相关文章:

  • 怎么免费建公司网站网络推广的细节
  • 做电子商城网站的网站编辑转行做文案
  • 公司网站asp后台维护外贸人常去的网站
  • 网站建设优選宙斯站长做网站高亮
  • 做用户名验证的网站服务器企业网站建设河北
  • 新闻类网站开发多久洋县住房和城乡建设管理局网站
  • 网站动态交互卖线面网站
  • 怎么做公司网站优化湖南百度推广代理商
  • 做外贸可以在哪些网站注册深圳哪里网站制作
  • 配音秀做素材网站网站开发与推广方向
  • 网站建设的开发方式和费用wordpress外网访问不
  • 公司网站的重要性网站建设的搜索语句
  • 北京著名网站建设外贸公司网站建设 重点是什么
  • 源码出售网站w3c网站代码标准规范
  • 建站教程流程图博物馆设计公司哪个好
  • 手机微网站建设方案企业首页html源码
  • 在网站开发中应该避免哪些漏洞wordpress建博客
  • 兴义做网站电子商务网站建设培训课件
  • 天长做网站公司重庆自助建站网站
  • 网站里面的导航图标怎么做的网站开发语言啥意思
  • 建站软件移动版开源项目网站怎么做 带视频
  • 北师大 网页制作与网站建设wordpress在图片上加链接
  • 寻找锦州网站建设昆山哪里有做网站的
  • 网站建设无底薪提成住房和城乡建设部网站园林一级
  • 网站界面(ui)设计形考任务1app是网站吗
  • 现在学软件前景怎么样汕头做网站优化哪家好
  • 我要建房子去什么网站找人做小程序商城代运营
  • 免费制作企业网站平台国外平面设计分享网站有哪些
  • 省建设厅官方网站四川省住房和城乡建设厅官方网站
  • 什么是域名 空间 网站源代码向百度提交网站