You need to enable JavaScript to run this app.
导航
常用函数
最近更新时间:2025.01.21 10:34:37首次发布时间:2022.12.15 10:08:27

算数计算

函数

函数说明

plus(a,b)
a+b

加法

minus(a,b)
a-b

减法

multiply(a,b)
a*b

乘法

divide(a,b)
a/b

除法

intDiv(a,b)

除以整数,向下取整

intDivOrZero(a,b)

除以0返回0

modulo(a,b)
a%b

取余数

moduloOrZero(a,b)

对0取余数返回0

negate(a),
-a

负数

abs(a)

绝对值

gcd(a,b)

最大公约数

lcm(a,b)

最小公倍数

日期 & 时间

函数

函数说明

timeZone

服务器时区

toTimeZone

转换时区

timeZoneOf

返回特定日期时区

timeZoneOffset

返回和UTC时差(秒)

toYear

返回年份

toQuarter

返回季度

toMonth

返回月份

toDayOfYear

返回一年里第几天

toDayOfMonth

返回天

toDayOfWeek

返回星期

toHour

返回小时

toMinute

返回分钟

toSecond

返回秒

toUnixTimestamp

转换成unix timestamp

toStartOfYear

转换成一年第一天

toStartOfISOYear

转换成ISO年第一天

toStartOfQuarter

转换成季度第一天

toStartOfMonth

转换成月度第一天

toMonday

转换成最近周一

toStartOfWeek(t[,mode])

转换成周开始一天

toStartOfDay

转换成当天开始

toStartOfHour

转换成当前小时开始

toStartOfMinute

转换成当前分钟开始

toStartOfSecond

转换成当前秒开始

toStartOfFiveMinutes

按5分钟间隔开始时间

toStartOfTenMinutes

按10分钟间隔开始时间

toStartOfFifteenMinutes

按15分钟间隔开始时间

toStartOfInterval(time_or_data, INTERVAL x unit [, time_zone])

按指定时间类型开始时间

toTime

转换成时间

toISOYear

转换成ISO 年

toISOWeek

转换成ISO 周

toWeek(date[,mode])

转换成周数

toYearWeek(date[,mode])

转换成年+周数

date_trunc

按照特定日期

date_add

添加特定日期单位

date_diff

两个日期相差时间

date_sub

日期相减

timestamp_add

Timstamp添加特定日期单位

timestamp_sub

Timstamp减去特定日期单位

now

当前时间

today

当天

yesterday

昨天

timeSlot

半点取整

toYYYYMM

转换成年月

toYYYYMMDD

转换成年月日

toYYYYMMDDhhmmss

转换成年月日时分秒

addYears, addMonths, addWeeks, addDays, addHours, addMinutes, addSeconds, addQuarters

添加不同日期 or 时间维度

subtractYears, subtractMonths, subtractWeeks, subtractDays, subtractHours, subtractMinutes, subtractSeconds, subtractQuarters

减去不同日期 or 时间维度

formatDateTime

格式化日期

dateName

返回日期指定部分

FROM_UNIXTIME

Unix time 转DateTime

字符串

函数

函数描述

empty

返回输入是否为空

notEmpty

返回输入是否不为空

length

字符串长度

lengthUTF8

返回以Unicode码位为单位的字符串的长度

char_length, CHAR_LENGTH

同上

character_length, CHARACTER_LENGTH

同上

leftPad

从左边填充当前的字符串,直到产生的字符串达到指定的长度

leftPadUTF8

功能同上,只是长度是以字节为单位计算的

rightPad

从右边填充当前的字符串,直到产生的字符串达到指定的长度

rightPadUTF8

功能同上,只是长度是以字节为单位计算的

lower, lcase

改成小写

upper, ucase

改成大写

lowerUTF8

改成小写,如果字符串包含的字节序列不是有效的UTF-8,那么该行为就无法定义

upperUTF8

改成大写,如果字符串包含的字节序列不是有效的UTF-8,那么该行为就无法定义

isValidUTF8

输入是否有效的UTF-8编码

toValidUTF8

用�(U+FFFD)字符替换无效的UTF-8字符

repeat

按照指定的次数重复一个字符串

reverse

反转字符串

reverseUTF8

以Unicode的序列反转字符串

format(pattern, s0, s1, …)

格式化字符串

concat

字符串拼接

concatAssumeInjective

同上,通常用于Group by优化

substring(s, offset, length), mid(s, offset, length), substr(s, offset, length)

字符串子集

substringUTF8(s, offset, length)

同上,长度以Unicode计量

appendTrailingCharIfAbsent(s, c)

如果's'字符串是非空的,并且末尾不包含'c'字符,它将把'c'字符附加到末尾

convertCharset(s, from, to)

返回从'from'中的编码到'to'中的编码所转换的字符串's'

base64Encode(s)

将's'字符串编码为base64

base64Decode(s)

以base64编码的字符串's'解码为原始字符串

tryBase64Decode(s)

同上,如果解码出错返回空字符串

endsWith(s, suffix)

返回是否以指定的后缀结束

startsWith(str, prefix)

返回是否以指定的前缀结束

trim

从一个字符串的开头或结尾删除所有指定的字符。默认情况下,从一个字符串的两端删除所有连续出现的普通空格

trimLeft

删除开头连续出现的普通空格

trimRight

删除结尾连续出现的普通空格

trimBoth

删除两端连续出现的普通空格

CRC32(s)

CRC32校验, 初始值0xffffffffff

CRC32IEEE(s)

CRC32校验

CRC64(s)

CRC64校验

normalizeQuery

用占位符替换

normalizedQueryHash

64位哈希值,一般用于查询日志分析

类型转换

函数

函数描述

toInt(8

16

32

64

128

转换成Int类型

toInt(8

16

32

64

128

256)OrZero

转换成Int类型,如果失败返回0

toInt(8

16

32

64

128

256)OrNull

转换成Int类型,如果失败返回Null

toInt(8

16

32

64

128

256)OrDefault

转换成Int类型,如果失败返回默认值

toUInt(8

16

32

64

转换成UInt类型

toUInt(8

16

32

64

256)OrZero

转换成UInt类型,如果失败返回0

toUInt(8

16

32

64

256)OrNull

转换成UInt类型,如果失败返回Null

toUInt(8

16

32

64

256)OrDefault

转换成UInt类型,如果失败返回默认值

toFloat(32

转换成Float类型

toFloat(32

64)OrZero

转换成Float类型,如果失败返回0

toFloat(32

64)OrNull

转换成Float类型,如果失败返回Null

toFloat(32

64)OrDefault

转换成Float类型,如果失败返回默认值

toDate

转换成Date类型

toDateOrZero

转换成Date类型,如果失败返回0

toDateOrNull

转换成Date类型,如果失败返回Null

toDateOrDefault

转换成Date类型,如果失败返回默认值

toDateTime

转换成DateTime类型

toDateTimeOrZero

转换成DateTime类型,如果失败返回0

toDateTimeOrNull

转换成DateTime类型,如果失败返回Null

toDateTimeOrDefault

转换成DateTime类型,如果失败返回默认值

toDate32

转换成Date32类型

toDate32OrZero

转换成Date32类型,如果失败返回0

toDate32OrNull

转换成Date32类型,如果失败返回Null

toDate32OrDefault

转换成Date32类型,如果失败返回默认值

toDecimal(32

64

128

转换成Decimal类型

toDecimal(32

64

128

256)OrNull

转换成Decimal类型,如果失败返回0

toDecimal(32

64

128

256)OrDefault

转换成Decimal类型,如果失败返回Null

toDecimal(32

64

128

256)OrZero

转换成Decimal类型,如果失败返回默认值

toString

转换成String类型

toFixedString(s, N)

转换成String类型, 返回固定长度为N的字符串

reinterpretAsUInt(8

16

32

转换UInt类型

reinterpretAsInt(8

16

32

转换Int类型

reinterpretAsFloat(32

转换Float类型

reinterpretAsDate

转换Date类型

reinterpretAsDateTime

转换DateTime类型

reinterpretAsString

转换String类型

CAST(x, T)

试图用新的数据类型来呈现相同的值。如果不能完成转换,则会产生一个异常

accurateCast(x, T)

如果类型值x不符合T的界限,accurateCast不允许数字类型在cast过程中溢出

accurateCastOrNull(x, T)

如果转换异常返回Null

accurateCastOrDefault(x, T, default_value)

如果转换异常返回默认值

toInterval(Year

Quarter

Month

Week

Day

Hour

Minute

Second)

返回不同日期段间隔

parseDateTimeBestEffort

将字符串表示的日期和时间转换为DateTime数据类型

parseDateTime32BestEffort

将字符串表示的日期和时间转换为DateTime32数据类型

parseDateTimeBestEffortUS

在不明确的情况下更倾向于美国的日期格式(MM/DD/YYYY等)

parseDateTimeBestEffortOrNull

同parseDateTimeBestEffort,如果无法转换返回Null

parseDateTime32BestEffortOrNull

同parseDateTime32BestEffort,如果无法转换返回Null

parseDateTimeBestEffortOrZero

同parseDateTimeBestEffort,如果无法转换返回Zero

parseDateTime32BestEffortOrZero

同parseDateTime32BestEffort,如果无法转换返回Zero

parseDateTimeBestEffortUSOrNull

同parseDateTimeBestEffortUS,如果无法转换返回Null

parseDateTimeBestEffortUSOrZero

同parseDateTimeBestEffortUS,如果无法转换返回Zero

parseDateTime64BestEffort

将字符串表示的日期和时间转换为DateTime64数据类型

parseDateTime64BestEffortOrNull

同parseDateTime64BestEffort,如果无法转换返回Null

parseDateTime64BestEffortOrZero

同parseDateTime64BestEffort,如果无法转换返回Zero

toLowCardinality

转换为同一数据类型的LowCardianlity

toUnixTimestamp64Milli

返回UnixTimestamp64, 毫秒level

toUnixTimestamp64Micro

返回UnixTimestamp64, 微秒level

toUnixTimestamp64Nano

返回UnixTimestamp64, 纳秒level

fromUnixTimestamp64Milli

将Int64转换DateTime64,输入为毫秒

fromUnixTimestamp64Micro

将Int64转换DateTime64,输入为微秒

fromUnixTimestamp64Nano

将Int64转换DateTime64,输入为纳秒

formatRow

给定的格式将任意的表达式转换为字符串

formatRowNoNewline

同上,如果结尾有换行符会被trim

标准聚合函数

函数

函数描述

count

计数

min

最小值

max

最大值

sum

求和

avg

平均值

any

选择第一个遇到的值

stddevPop

等于varPop的平方根

stddevSamp

等于varSamp的平方根

varPop

Σ((x - x̅)^2) / n,其中n是样本量,x̅是x的平均值

varSamp

Σ((x - x̅)^2) / (n - 1),其中n是样本量,x̅是x的平均值。

covarPop(x,y)

Σ((x - x̅)(y - y̅)) / n

covarSamp(x,y)

Σ((x - x̅)(y - y̅)) / (n - 1)

高级聚合函数

函数

函数描述

anyHeavy

使用重击者算法选择一个经常出现的值

anyLast

选择最后遇到的值

argMin(arg, val)

计算一个最小val值的arg值

argMax(arg, val)

计算一个最大val值的arg值

avgWeighted

计算加权的算术平均值

topK

返回指定列中近似最频繁的值的数组

topKWeighted

返回指定列中近似最频繁的值的数组,计算逻辑带上数据权重

groupArray

创建一个数组。数值可以以任何(不确定的)顺序添加到数组中

groupUniqArray

创建一个去重数组。数值可以以任何(不确定的)顺序添加到数组中

groupArrayInsertAt

在指定位置向数组中插入一个值。

groupArrayMovingAvg

计算输入值的移动平均值

groupArrayMovingSum

计算输入值的移动总和

groupBitAnd

对一系列数字bit逻辑And 运算

groupBitOr

对一系列数字bit逻辑Or 运算

groupBitXor

对一系列数字bit逻辑XOr 运算

groupBitmap

采用Bitmap数据类型,返回输入字段基数(去重数量)

groupBitmapAnd

bit逻辑And 运算后计算后基数(去重数量)

groupBitmapOr

bit逻辑Or运算后计算后基数(去重数量)

groupBitmapXor

bit逻辑Xor 运算后计算后基数(去重数量)

sumWithOverflow

计算数字的总和,对结果使用与输入参数相同的数据类型。如果总和超过该数据类型的最大值,则以溢出计算。

sumMap(key,value)

根据键数组中指定的key,对值数组value进行合计

minMap(key,value)

根据键数组中指定的key,对值数组value返回最小值

maxMap

根据键数组中指定的key,对值数组value返回最大值

skewSamp

计算一个序列的样本偏度

skewPop

计算一个序列的偏度

kurtSamp

计算一个序列的样本峰度

kurtPop

计算一个序列的峰度

uniq

计算一个序列近似数量

uniqExact

计算一个序列精确去重数量

uniqCombined

用近似算法

uniqCombined64

用近似算法

uniqHLL12

用近似算法,HyperLogLog算法

uniqTheta

采用Theta Sketch近似算法

quantile

序列的近似四分位数

quantileExact

精确计算序列的四分位数

quantileExactLow

同quantileExact, 在有多个value情况下返回最低值

quantileExactHigh

同quantileExact, 在有多个value情况下返回最高值

quantileExactWeighted

精确计算序列的四分位数,计算逻辑带上权重

quantileTiming

用确定的精度计算quantile

quantileTimingWeighted

用确定的精度计算quantile, 计算逻辑带上权重

quantileDeterministic

近似计算quantile

quantileTDigest

采用t-digest算法近似计算quantile

quantileTDigestWeighted

采用t-digest算法近似计算quantile,计算逻辑带上权重

quantileBFloat16

bfloat16样本近似计算quantile

quantileBFloat16Weighted

bfloat16样本近似计算quantile, 计算逻辑带上权重

median*

等效quantile*函数

simpleLinearRegression

简单线性回归

stochasticLinearRegression

随机线性回归

stochasticLogisticRegression

随机逻辑回归

数学运算

函数

函数描述

e()

返回Float64,近似e常数

pi()

返回Float64,近似pi常数

exp(x)

指数计算

log(x), ln(x)

对数计算

exp2(x)

2次方运算

log2(x)

对数计算,底数2

exp10(x)

10次方运算

log10(x)

对数计算,底数10

sqrt(x)

平方根

cbrt(x)

立方根

sin(x)

三角函数sin

cos(x)

三角函数cos

tan(x)

三角函数tan

asin(x)

三角函数asin

acos(x)

三角函数acos

atan(x)

三角函数atan

pow(x, y), power(x, y)

x的y次方

cosh(x)

三角函数 cosh

acosh(x)

三角函数 acosh

sinh(x)

三角函数 sinh

asinh(x)

三角函数 asinh

atanh(x)

三角函数 atanh

其他函数

请参考 ClickHouse 开源版 21.8 的支持函数。链接