跳到主要内容
版本:2.3

计算引擎

简介

GrowingIO使用Clickhouse开源软件作为数据存储和分析计算的核心引擎,结合自研的高性能算法,获得超高效率的应用支撑。

在数据校验、问题排查、二次开发等诸多场景中,您将会编写SQL语句直接在Clickhouse中运行。虽然Clickhouse提供了非常丰富的函数集,不过对于习惯Hive等语法的开发者或分析师来说,了解Clickhouse中标准语法和常用函数,对于快速上手是大有裨益的。

本文档仅提供Clickhouse引擎部分常用函数,更多资料请参阅Clickhouse官网。

功能说明

展示了Clickhouse常用函数

字符串函数

函数用途举例结果
length(str)返回字符串的长度length('abc')返回3
concat(s1,s2....)将字符串拼接concat('ab','c')返回abc
lower(str)将字符串转为小写lower('ABc')返回abc
upper(str)将字符串转为大写upper('abC')返回ABC
substring(str, offset, length)字符串截取substring('abc', 1, 2)返回ab
like(str,patten)模糊匹配like('abc','%a%')
like('abc','%z%')
返回1
返回0
replace(str,patten
,replacement)
字符串替换replace('abc','a','z')返回zbc

数学函数

函数用途举例结果
pow(x, y)返回x的y次方pow(2, 3)返回8
sqrt(x)对x开平方sqrt(4)返回2
cbrt(x)对x开立方cbrt(8)返回2

舍入函数

函数用途举例结果
round(x[, N])四舍五入round(12.67, 1)返回12.7
floor(x[, N])向下取数floor(12.67,1)返回12.6
ceil(x[, N])向上取数ceil(12.67,1)返回12.7

日期函数

函数用途举例结果
now()当前时间now()返回2021-06-01 00:00:00
today()今日日期today()返回2021-06-01
yesterday()昨日日期yesterday()返回2021-05-31
formatDateTime(Time
, Format[, Timezone])
时间格式化formatDateTime(now(),'%Y-%m-%d')返回2021-06-01
dateDiff(t1,t2,unit)计算两个时间差值dateDiff('day',yesterday(),today())
dateDiff('hour',yesterday(),today())
dateDiff('minute',yesterday(),today())
dateDiff('second',yesterday(),today())
返回1
返回24
返回1440
返回86400
addDays(t,n)增加日期addDays(today(),1)返回2021-06-02

formatDateTime 常用修饰符

修饰符描述示例
%Y2021
%m月份(01-12)06
%d月中的一天(01-31)01
%H24小时格式(00-23)00
%M分钟(00-59)00
%S秒 (00-59)00

​​

聚合函数

函数用途
count计数
sum求和
avg求平均
min求最小值
max求最大值

类型转换函数

函数用途举例结果
toString将数值型、字符型、日期等
转化为字符型
toString(today())返回2021-06-01
toDate将字符型转化为日期toDate('2021-06-01')返回2021-06-01
toInt64将字符型转化为整型toInt64('12')返回12

其他函数

函数用途举例结果
if(cond,then,else)条件输出if(1 > 2,'OK','NO')返回NO