函数 | 函数说明 |
---|---|
plus(a,b) | 加法 |
minus(a,b) | 减法 |
multiply(a,b) | 乘法 |
divide(a,b) | 除法 |
intDiv(a,b) | 除以整数,向下取整 |
intDivOrZero(a,b) | 除以0返回0 |
modulo(a,b) | 取余数 |
moduloOrZero(a,b) | 对0取余数返回0 |
negate(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 的支持函数。链接