clickhouse内置函数和关键词总结

一、关键词

  1. SQL 语法关键字(最常见)

    SELECT, FROM, WHERE, GROUP, ORDER, BY, LIMIT, OFFSET JOIN, INNER,
    LEFT, RIGHT, FULL, ON, USING HAVING, DISTINCT, AS, AND, OR, NOT, IN, IS,
    NULL IF, CASE, WHEN, THEN, ELSE, END INSERT, UPDATE, DELETE, CREATE, ALTER,
    DROP, TABLE, DATABASE VIEW, INDEX, ENGINE, PARTITION, SETTINGS

  2. 数据类型名(高频冲突)

    Date, DateTime, DateTime64, Timestamp Int8, Int16, Int32, Int64,
    UInt8, UInt16, UInt32, UInt64 Float32, Float64, Decimal, String,
    FixedString Array, Map, Tuple, LowCardinality, Nullable Bool, Enum, UUID, JSON, IPv4, IPv6

二、聚合函数(Aggregate Functions)

作用:多行数据 → 单行结果(GROUP BY 必备)

  1. 基础聚合
  • count() / count(column):计数
  • sum(x):求和
  • avg(x):平均值
  • min(x) / max(x):最小 / 最大值
  • any(x) / anyLast(x):取任意一个值(优化快)
  1. 去重与近似计算(性能优先)
  • uniq(x):近似去重数(HyperLogLog)
  • uniqExact(x):精确去重(大数据慢)
  • uniqCombined(x):精度更高的近似去重
  • quantile(0.9)(x):90 分位(近似)
  • quantileExact(0.9)(x):精确分位
  • median(x):中位数
  1. 数组 / 列表聚合
  • groupArray(x):分组转数组
  • groupUniqArray(x):分组去重转数组
  • groupBitmap(x):聚合为位图(高效去重计算)
  1. 统计类
  • stddevPop(x) / stddevSamp(x):总体 / 样本标准差
  • covarPop(x,y):协方差
  • corr(x,y):相关系数

二、日期时间函数

作用:DateTime / Date 类型处理

  1. 取当前时间
  • now() → DateTime
  • today() → Date
  • yesterday()
  • toDateTime('2025-01-01 10:00:00')
  1. 时间截断(分组常用)
  • toStartOfHour(t) → 整点
  • toStartOfDay(t) → 当天 0 点
  • toStartOfMonth(t) → 当月 1 号
  • toMonday(t) → 本周一
  1. 时间加减
  • addDays(t, 7) / subtractDays(t, 3)
  • addHours(t, 2) / addMonths(t, 1)
  1. 时间差
  • dateDiff('day', t1, t2) → 天数差
  • dateDiff('hour', t1, t2) → 小时差
  1. 格式化
  • formatDateTime(t, '%Y-%m-%d %H:%M:%S')
  • toString(t, 'Asia/Shanghai') → 带时区

三、字符串函数

作用:文本处理、截取、匹配、拼接

  • concat(s1, s2, ...)
  • substring(s, offset, length)
  • length(s) / lower(s) / upper(s)
  • trim(s) / ltrim / rtrim
  • replace(s, old, new)
  • replaceRegexpAll(s, pattern, repl)
  • splitByString(',', s) → 切为数组
  • position(s, substr) → 子串位置
  • match(s, pattern) → 正则匹配(返回 1/0)
  • extract(s, pattern) → 正则提取第一个匹配
  • extractAll(s, pattern) → 提取所有匹配

四、数组函数(Array)

ClickHouse 特色:数组能力极强

  • array(1,2,3) → 构造数组
  • length(arr) → 元素个数
  • has(arr, 5) → 是否包含
  • indexOf(arr, 5) → 位置
  • arrayConcat(arr1, arr2)
  • arraySlice(arr, 2, 3) → 切片
  • arraySort(arr) → 排序
  • arrayReverse(arr)
  • arrayDistinct(arr) → 去重
  • arrayFilter(x -> x>10, arr) → 过滤
  • arrayMap(x -> x*2, arr) → 映射
  • arraySum(arr) → 数组内求和
  • arrayJoin(arr) → 行展开(炸裂)

五、条件与空值函数

逻辑判断、NULL 处理

  • if(cond, a, b)
  • multiIf(c1,a1, c2,a2, ..., default) → 多分支
  • isNull(x) / isNotNull(x)
  • coalesce(x1, x2, x3, ...) → 取第一个非 NULL
  • ifNull(x, default)
  • nullIf(a, b) → a==b 则返回 NULL

六、类型转换函数

强制类型转换

  • toInt8(x) / toInt16 / toInt32 / toInt64
  • toUInt8 ... toUInt64
  • toFloat32 / toFloat64
  • toString(x)
  • toDate(x) / toDateTime(x)
  • CAST(x AS Type) → 通用强转

七、数学函数

  • abs(x)
  • floor(x) / ceil(x) / round(x,2)
  • exp(x) / log(x) / log10(x)
  • sqrt(x) / pow(x,y)
  • sin(x) / cos(x) / tan(x)
  • rand() / rand64() → 随机数

八、JSON 函数(半结构化)

  • JSONExtract(json, 'path') → 提取字段
  • JSONExtractInt / String / Float / Array
  • JSONHas(json, 'key')
  • JSONLength(json)

九、字典与映射函数

  • map('k1',v1, 'k2',v2) → 构造 Map
  • mapContains(map, key)
  • mapKeys(map)
  • mapValues(map)

十、窗口函数(Window Functions)

20.10+ 支持

  • rowNumber()
  • rank() / denseRank()
  • lag(x,1) / lead(x,1)
  • sum(x) OVER (PARTITION BY ... ORDER BY ...)

十一、用户行为 / 漏斗函数(特色)

用户路径、漏斗、留存专用

  • windowFunnel(window)(time, c1,c2,c3...) → 漏斗计数
  • sequenceMatch(pattern)(time, c1,c2...) → 路径匹配
  • sequenceCount(pattern)(time, c1,c2...) → 满足路径的条数
  • retention(c1,c2,...c32) → 留存矩阵

十二、哈希与加密

  • hex(s) / unhex(s)
  • md5(s) / sha1(s) / sha256(s)
  • cityHash64(s) / murmurHash2_64(s) → 哈希分桶常用

十三、URL 函数

  • protocol(url)
  • domain(url)
  • domainWithoutWWW(url)
  • path(url)
  • queryString(url)
  • extractURLParameter(url, 'param')

十四、IP 函数

  • IPv4ToNum(ip) → 转整数
  • IPv4NumToString(num) → 转回字符串
  • IPv4StringToNum(s)
  • isIPv4String(s)

十五、其他常用

  • greatest(a,b,c) → 取最大
  • least(a,b,c) → 取最小
  • hostName() → 服务器名
  • database() → 当前库
  • version() → CH 版本
  • sleep(1) → 休眠 1 秒

Webfunny 全链路监控埋点平台 是一站式前端监控 + 用户行为埋点 + 大数据分析平台,天然适配点位细查、用户行为回溯、批量导出等场景:

一体化架构:监控 + 埋点同一套 SDK,数据互通无壁垒

私有化部署:数据完全本地化,满足企业合规要求

高吞吐支撑:基于 ClickHouse 构建,亿级日志秒级查询

全端覆盖:H5 / 小程序 / APP / 鸿蒙全覆盖,统一导出口径

可定制强:支持接口扩展、分布式锁、限流降级等企业级能力

相关推荐
l1t2 天前
duckdb、clickhouse、datafusion、cedardb、tableauhyperapi 5种分析型数据库执行递归求数独SQL比较
数据库·sql·clickhouse
l1t2 天前
一个clickhouse易错的语法问题
数据库·sql·clickhouse
流烟默3 天前
ClickHouse 集群建表实战:从引擎选择到本地表 / 分布式表落地
分布式·clickhouse
深蓝电商API4 天前
亿级数据的存储选型:MongoDB/ES/ClickHouse横评
爬虫·clickhouse·mongodb·elasticsearch
流烟默6 天前
ClickHouse Part 机制与写入优化实践指南
大数据·运维·clickhouse
Sayai12 天前
ClickHouse WITH FILL 实战:监控大屏时间序列补零,附多粒度指标表与物化视图级联设计
大数据·运维·数据仓库·clickhouse·物化视图
l1t16 天前
DeepSeek总结的clickhouse的二进制文件自解压机制
clickhouse
l1t17 天前
DeepSeek总结的pg_clickhouse 与 chdb 更新:编码、嵌套与类型
数据库·clickhouse·postgresql
拔剑纵狂歌20 天前
ClickHouse system.query_log 字段详解与排障实践
后端·clickhouse·1024程序员节
SelectDB技术团队20 天前
Apache Doris 高性能 Open Lake Variant 读写技术解析(含对比数据)
数据结构·数据库·clickhouse·日志·apache doris·selectdb·湖仓架构升级