计算引擎
简介
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 常用修饰符
| 修饰符 | 描述 | 示例 | 
|---|---|---|
| %Y | 年 | 2021 | 
| %m | 月份(01-12) | 06 | 
| %d | 月中的一天(01-31) | 01 | 
| %H | 24小时格式(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 |