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 / 鸿蒙全覆盖,统一导出口径

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

相关推荐
java_logo18 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
ClickHouseDB2 天前
TPC-H 成本不到一分钱:ClickHouse Cloud 对比 Snowflake、Databricks、BigQuery 和 Redshift
clickhouse
隔壁阿布都5 天前
ClickHouse完整指南
服务器·数据库·clickhouse
数据库小学妹5 天前
MySQL做报表太慢?引入ClickHouse列式存储,同一个查询快240倍
mysql·clickhouse·列式存储·分析型数据库·向量化执行·olap数据库·mysql对比
ClickHouseDB9 天前
推出 ClickHouse Cloud 中的多阶段分布式查询执行
分布式·clickhouse
weixin_3077791311 天前
Linux下ClickHouse数据仓库故障系统化诊断脚本
linux·运维·clickhouse·自动化·数据库开发
SelectDB技术团队12 天前
Agent 场景动态 JSON 性能拆解:Apache Doris 比 ClickHouse 快 7 倍、比 Elasticsearch 快 2 倍
数据库·clickhouse·elasticsearch·json·apache·日志分析·apache doris
xhtdj1 个月前
智源大会圆桌大模型没有终局具身智能可能是中国的 AlphaGo 时刻
人工智能·clickhouse·安全·动态规划
xhtdj1 个月前
技术采用曲线回望二十年
运维·数据库·人工智能·clickhouse·动态规划
Taerge01101 个月前
Doris, StarRocks, ClickHouse, Hologres, ES 对比,选型建议
大数据·clickhouse·elasticsearch