花开不停 花开不停
首页
  • 追忆杂谈
  • 书信往来
  • 旅行记录
  • 文定之喜
  • 黄金屋-颜如玉
  • 程序化广告
  • 禅茶一味
  • 随写编年
  • 家人物语
  • 追忆青春
  • 大千世界
  • Shell
  • Java
  • Spark
  • Hadoop
  • ClickHouse
  • MySQL
  • PostgreSQL
  • MongoDB
  • 调度器
  • Zookeeper
  • Kafka
  • Flume
  • 学习周刊
关于
  • 分类
  • 标签
  • 归档
开往 (opens new window)

花开不停

此心光明,亦复何言
首页
  • 追忆杂谈
  • 书信往来
  • 旅行记录
  • 文定之喜
  • 黄金屋-颜如玉
  • 程序化广告
  • 禅茶一味
  • 随写编年
  • 家人物语
  • 追忆青春
  • 大千世界
  • Shell
  • Java
  • Spark
  • Hadoop
  • ClickHouse
  • MySQL
  • PostgreSQL
  • MongoDB
  • 调度器
  • Zookeeper
  • Kafka
  • Flume
  • 学习周刊
关于
  • 分类
  • 标签
  • 归档
开往 (opens new window)
  • Shell编程

  • Java编程笔记

  • Spark

  • Hadoop

  • ClickHouse

    • clickhouse常用函数
    • clickhouse拆分对应索引的数组
    • clickhouse 交集 并集 差集
    • clickhouse DDL DML
    • clickhouse表函数
    • clickhouse字符串函数
    • clickhouseJSON函数
    • clickhouse数组函数
      • 1. 常用基本函数
      • 2. 高阶函数
        • 2.1. arrayMap(func, arr1, ...)
        • 2.2. arrayFilter(func, arr1, ...)
        • 2.3. arrayJoin(arr)
        • 2.4. 聚合函数
    • clickhouse时间函数
    • clickhouse类型转换函数
    • clickhouse位图bitmap函数
    • clickhouse窗口函数
    • clickhouseMD5加密函数
    • clickhouse常用settings
    • clickhouse版本升级的语法变动21.8.9.1至23.8.9.1
  • MySQL

  • PostgreSQL

  • MongoDB

  • 调度器

  • Zookeeper

  • Kafka

  • Flume

  • 编程世界
  • ClickHouse
花开不停
2024-11-04
目录

clickhouse数组函数原创

ClickHouse数组函数在数据分析及开发中应用十分广泛,数组函数相对较多,使用起来略微复杂

具体可在官网查看,这里列举部分常用函数进行示例学习。

clickhouse官网-数组函数 (opens new window)

# 1. 常用基本函数

用途 函数 备注
数组判空 empty(arr) 空1,非空0
创建数组 array(i1,i2, ...) 空数组array()
判断是否包含元素 has(arr,elem)
判断是否包含数组 hasAll(set, subset)
判断数组是否有交集 hasAny(array1, array2)
查询元素索引 indexOf(arr,x) 从1开始
正序排序 arraySort(arr) 默认正序
倒序排序 arrayReverseSort(arr) 倒序
去重 arrayDistinct(array)
交集 arrayIntersect(arr1, arr2, ...)
求和 arraySum(arr)
最大元素 arrayMax(arr)
最小元素 arrayMin(arr)
随机抽样 arrayRandomSample(arr, samples) samples:样本个数

# 2. 高阶函数

# 2.1. arrayMap(func, arr1, ...)

  • 对数组每一个元素进行指定方法运算(必须将 lambda 函数作为第一个参数传递给它)
--例1:每个元素+2
SELECT arrayMap(x -> (x + 2), [1, 2, 3]) as res;
1
2

# 2.2. arrayFilter(func, arr1, ...)

  • 数组过滤,返回指定条件的一个新数组(必须将 lambda 函数作为第一个参数传递给它)
--例1:返回大于2的元素
SELECT arrayMap(x -> x > 2, [1, 2, 3]) as res;
1
2

# 2.3. arrayJoin(arr)

  • 该函数可以将数组展开到多行,应用十分广泛
SELECT arrayJoin([1, 2, 3] AS src) AS dst, 'Hello', src

┌─dst─┬─\'Hello\'─┬─src─────┐
│   1 │ Hello     │ [1,2,3] │
│   2 │ Hello     │ [1,2,3] │
│   3 │ Hello     │ [1,2,3] │
└─────┴───────────┴─────────┘
1
2
3
4
5
6
7

# 2.4. 聚合函数

  • 将一列数据聚合为数组
SELECT groupArray(id)

-- 聚合去重
SELECT groupUniqArray(x)

-- 聚合随机取样
SELECT groupArraySample(max_size)(x)
1
2
3
4
5
6
7

← clickhouseJSON函数 clickhouse时间函数→

最近更新
01
2025-05-26当我意识到我变得自私、暴躁、情绪不受控制 原创
05-26
02
clickhouse版本升级的语法变动21.8.9.1至23.8.9.1 原创
04-22
03
2025-03-28拍婚纱照 原创
04-02
更多文章>
Theme by Vdoing | Copyright © 2023-2025 | 京ICP备2023013437号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式