ClickHou函数整理(详细)
1、⽇期类函数
1.1 时间或⽇期截取函数(to)—— 返回⾮⽇期
函数⽤途举例结果toYear()取⽇期或时间⽇期的年份toYear(toDateTime(‘2018-12-11 11:12:13’)) toYear(toDate(‘2018-12-11’))返回 2018 返回 2018
toMonth()取⽇期或时间⽇期的⽉份toMonth(toDateTime(‘2018-12-11 11:12:13’)) toMonth(toDate(‘2018-12-
11’))
返回 12返回 12
toDayOfMonth()取⽇期或时间⽇期的天(1-31)toMonth(toDayOfMonth(‘2018-12-11 11:12:13’))武汉市人口
toMonth(toDayOfMonth(‘2018-12-11’))
返回 11返回 11
鸟可以加什么偏旁
toDayOfWeek()取⽇期或时间⽇期的星期(星期⼀为1,星期⽇
为7)。
toDayOfWeek(toDateTime(‘2018-12-11 11:12:13’))
toDayOfWeek(toDate(‘2018-12-11’))
返回 2返回 2
toHour()取时间⽇期的⼩时toHour(toDateTime(‘2018-12-11 11:12:13’))返回 11 toMinute()取时间⽇期的分钟toMinute(toDateTime(‘2018-12-11 11:12:13’))返回 12 toSecond()取时间⽇期的秒toSecond(toDateTime(‘2018-12-11 11:12:13’))返回 13
toMonday()取时间⽇期最近的周⼀(返回⽇期)toMonday(toDate(‘2018-12-11’)) toMonday(toDateTime(‘2018-12-11
11:12:13’))
返回 2018-12-10返回 2018-
12-10
toTime()将时间⽇期的⽇期固定到某⼀天,保留原始时
间
toTime(toDateTime(‘2018-12-11 11:12:13’))返回 1970-01-02 11:12:13
1.2 时间或⽇期截取函数(toStartOf)—— 返回⽇期
函数⽤途举例结果
toStartOfMonth()取⽇期或时间⽇期的⽉份的第⼀天,返回⽇期
toStartOfMonth(toDateTime(‘2018-12-11
11:12:13’))toStartOfMonth(toDate(‘2018-12-11’))
返回 2018-12-01返回 2018-12-01
toStartOfQuarter()取⽇期或时间⽇期的季度的第⼀天,返回⽇期
toStartOfQuarter(toDateTime(‘2018-12-11
11:12:13’))toStartOfQuarter(toDate(‘2018-12-11’))
返回 2018-10-01返回 2018-10-01
toStartOfYear()取⽇期或时间⽇期的年份的第⼀天,返回⽇期
toStartOfYear(toDateTime(‘2018-12-11
11:12:13’))toStartOfYear(toDate(‘2018-12-11’))
返回 2018-01-01返回 2018-01-01
toStartOfMinute()截取时间⽇期到分钟(之后归零),返回⽇期toStartOfMinute(toDateTime(‘2018-12-11 11:12:13’))返回 2018-12-11 11:12:00
toStartOfFiveMinute()截取时间⽇期到最近的5的倍数分钟(之后归
零),返回⽇期
自己怎么卸美甲toStartOfFiveMinute(toDateTime(‘2018-12-11 11:12:13’))返回 2018-12-11 11:10:00
toStartOfFifteenMinutes()截取时间⽇期到最近的15的倍数分钟(之后
归零),返回⽇期
toStartOfFifteenMinutes(toDateTime(‘2018-12-11 11:12:13’))返回 2018-12-11 11:00:00
toStartOfHour()截取时间⽇期到⼩时(之后归零),返回⽇期toStartOfHour(toDateTime(‘2018-12-11 11:12:13’))返回 2018-12-11 11:00:00 toStartOfDay()截取时间⽇期到天(之后归零),返回⽇期toStartOfDay(toDateTime(‘2018-12-11 11:12:13’))返回 2018-12-11 00:00:00
timeSlot()将时间⽇期中,分钟⼤于等于30的归于30,
分钟数⼩于30的归为00
timeSlot(toDateTime(‘2018-12-11
11:33:13’))timeSlot(toDateTime(‘2018-12-11 11:33:13’))
返回 2018-12-11 11:00:00返回
2018-12-11 11:30:00
1.3 ⽇期或时间⽇期⽣成函数
函数⽤途举例结果
now()⽣成当前时间⽇期now()返回 2018-12-13 10:10:12
today()⽣成今天的⽇期today()返回 2018-12-13 yesterday()⽣成昨天的⽇期yesterday()返回 2018-12-12
2、类型转化类函数
2.1 精度保留(⾮四舍五⼊)
函数⽤途举例结果toDecimal32(‘whdwjfew’,8)将数值型或者含有⾮数字的字符串进⾏精度保留toDecimal32(23.12291, 3)toDecimal32(’_23.12291’, 3)返回 23.122返回 0.000 toDecimal64(‘whdwjfew’,8)将数值型或者含有⾮数字的字符串进⾏精度保留toDecimal64(23.12291, 3)toDecimal64(’_23.12291’, 3)返回 23.122返回 0.000 toDecimal128(‘whdwjfew’,8)将数值型或者含有⾮数字的字符串进⾏精度保留toDecimal128(23.12291, 3)toDecimal128(’_23.12291’, 3)返回 23.122返回 0.000 2.2 字符串转化为整数(⾮整数的字符串返回0)
函数⽤途举例结果
toUInt8OrZero()将⽆符号整数字符型转化为整数型,否则返回0toUInt8OrZero(‘123’)toUInt8OrZero(‘123.12’)返回 123返回 0 toInt8OrZero()将整数字符型转化为整数型,否则返回0toInt8OrZero(‘123’)toInt8OrZero(’-123’)返回 123返回 -123
toFloat32OrZero()将数值字符串型转化为数值型,注意:从toFloat32OrZero开始,丢32的没有对应
的函数
toFloat32OrZero(‘-
123’)toFloat32OrZero(‘123.123’)
返回 -123返回
123.123
2.3 ⽇期与时间⽇期转化
函数⽤途举例结果
toDate()将字符型⽇期转化为⽇期型toDate(‘2018-12-24’)返回 2018-12-24 toDateTime()将字符型时间
⽇期转化为时间⽇期型toDateTime(‘2018-12-24 10:10:00’)返回 2018-12-24 10:10:00 2.4 转化为字符型
函数⽤途举例结果toString()将数值型、字符型、⽇期等转化为字符型toString(‘2018-12-24’)toString(‘123’)返回 2018-12-24返回 123 2.5 查看数据类型
函数⽤途举例结果toTypeName()返回数据的类型toTypeName(toString(‘123’))toTypeName(toDate(‘2018-12-24’))返回 String返回 Date 3、字符串操作
3.1 基本字符串操作
函数⽤途举例结果empty()判断字符串是空为1,否则为0empty(’’)empty(‘123a’)返回 1返回 0 notEmpty()判断字符串是⾮空为1,否则为0notEmpty(’’)notEmpty(‘123a’)返回 0返回 1 length()返回字符串的长度length(’’)length(‘123a’)返回 0返回 4 lower()将字符串转为⼩写lower(‘aBc’)返回 abc upper()将字符串转为⼤写upper(‘aBc’)返回 ABC rever()将字符串反转rever(‘abc’)返回 cba substring(s, offt, length)字符串截取substring(‘123abcABC’, 2, 3)返回 23a
appendTrailingCharIfAbnt(s,
c)如果字符串s⾮空,则将s后追加⼀个字符c(s最后⼀个字
符与c不同),否则不处理
appendTrailingCharIfAbnt(‘123abc’,
‘b’)appendTrailingCharIfAbnt(‘123abc’, ‘c’)
返回 123abcb返回
123abc
3.2 字符串查找
函数⽤途举例结果match(haystack,pattern)字符串正则匹配,返回0或1match(‘avhsca’,'vh’)返回 1 extract(haystack,pattern)返回匹配到的第⼀个⼦串extract(‘iioomAj12123124OOBJB’, ‘\d+’)返回 12123124 extractAll(haystack,pattern)返回匹配到的所有⼦串,输出列表extractAll(‘iioomAj12123124OOBJ123B’, ‘\d+’)返回 [12123124,123] like(haystack,pattern)匹配到的数据返回1,否则返回0like(‘avhsca’,’%vh%’)like(‘avhsca’,’%vabjh%’)返回 1返回 0 notLike(haystack, pattern)与like()函数相反notLike(‘avhsca’,’%vh%’)notLike(‘avhsca’,’%vabjh%’)返回 0返回 1 3.3 字符串替换
函数⽤途举例结果
观察手replaceOne(haystack,pattern,replacement)替换第⼀个匹配到的
pattern
replaceOne(‘asd123cbbj464sd’, ‘sd’, ‘-’)返回 a-123cbbj464sd
replaceAll(haystack,pattern,replacement)替换所有匹配到的
pattern
replaceOne(‘asd123cbbj464sd’, ‘sd’, ‘-’)返回 a-123cbbj464-
replaceRegexpOne(haystack, pattern,
replacement)正则匹配替换第⼀个匹配
到的pattern
replaceRegexpOne(‘Hello, World!’, ‘o’, '- ')返回 Hell- , World!
replaceRegexpAll(haystack,pattern,replacement)正则匹配替换所有匹配到
的pattern
replaceRegexpAll(‘Hello, World!’, ‘^’, 'here:
')replaceRegexpAll(‘Hello, World!’, ‘o’, '-- ')
返回 here: Hello, World!返回
Hell-- , W-- rld!
3.4 字符串分割
函数⽤途举例结果
splitByChar(parator,
s)以单个字符分割字
符串
splitByChar(’-’, ‘qw-asaf-asfqw-2312-asd’)返回 [‘qw’,‘asaf’,‘asfqw’,‘2312’,‘asd’]
splitByString(parator,
s)以单个或多个字符
分割字符串
splitByString(’-’, ‘qw-asaf-asfqw-2312-asd’)splitByString(’-
a’, ‘qw-asaf-asfqw-2312-asd’)
返回 [‘qw’,‘asaf’,‘asfqw’,‘2312’,‘asd’]返回
[‘qw’,‘saf’,‘sfqw-2312’,‘sd’]
3.5 字符串拼接
函数⽤途举例结果concat(s1,s2,…)将字符串拼接concat(‘123’, ‘abc’, ‘ABC’)返回 123abcABC 4、条件语句
函数⽤途举例结果if(cond,then,el)条件输出if(1 > 2, ‘正确’, ‘错误’)返回 错误multiIf(cond_1, then_1, cond_2, then_2…el)多条件输出multiIf(1 > 2, ‘正确’, 2 < 0, ‘正确’, ‘错误’)返回 错误5、数学函数
函数⽤途举例结果
e()返回e的值e()返回 2.718281828459045
pi()返回pi的值pi()返回 3.141592653589793
exp(x)返回e的x次⽅exp(1)返回 2.718281828459045
exp2(x)返回2的x次⽅exp2(2)返回 4
exp10(x)返回10的x次⽅exp10(1)返回 10
log(x)返回log以e为底的对数值log(e())返回 1
log2(x)返回log以2为底的对数值log2(2)返回 1
log10(x)返回log以10为底的对数值log10(100)返回 2
sqrt(x)对x开平⽅sqrt(4)返回 2
cbrt(x)对x开⽴⽅cbrt(8)返回 2
pow(x, y)返回x的y次⽅pow(2, 3)返回 8
6、舍⼊函数
小偷与警察函数⽤途举例结果floor(x[, N])向下取数floor(123.883, 1)floor(123.883, -1)返回 123.8返回 120
ceil(x[, N])向上取数ceil(123.883, 1)ceil(123.883, -1)返回 123.9返回 130
round(x[, N])四舍五⼊round(123.883, 1)round(123.883, -1)返回 123.9返回 120
7、URL操作函数
函数⽤途举例结果
protocol()返回URL的协
议类型
protocol(‘’)返回 http
domain()返回URL的域
名
domain(‘’)返回
domainWithoutWWW()返回URL不带
www的域名
domainWithoutWWW(‘’)返回
topLevelDomain()返回顶级域名topLevelDomain(‘’)返回 cn
firstSignificantSubdomain()
Returns the
“first
significant
subdomain”.
firstSignificantSubdomain(‘’)返回 baidu
Returns the
part of the
domain that
cutToFirstSignificantSubdomain()includes top-
level
subdomains
up to the
“first妈妈的朋友4下载
significant
subdomain”
(e the
explanation
above).
cutToFirstSignificantSubdomain(‘’)返回
path()返回URL的路
径
path(‘/s?
wd=SQL%E4%B8%AD%E7%9A%84split’)
返回 /s
pathFull()返回URL的完
整路径
pathFull(‘/s?
wd=SQL%E4%B8%AD%E7%9A%84split’)
返回 /s?wd=SQL%E4%B8%AD%E7%9A%84split
queryString()返回URL的参
数(查询字符
串)
工程方案queryString(‘/s?
wd=SQL%E4%B8%AD%E7%9A%84split’)
返回 wd=SQL%E4%B8%AD%E7%9A%84split
extractURLParameters()以列表的形式
返回URL的参
数
extractURLParameters(‘/s?
wd=SQL%E4%B8%AD%E7%9A%84split&ur=qwguq’)
返回
[‘wd=SQL%E4%B8%AD%E7%9A%84split’,‘ur=qwguq’]
extractURLParameterNames()以列表的形式
返回URL的参
数名
extractURLParameterNames(‘/s?
wd=SQL%E4%B8%AD%E7%9A%84split&ur=qwguq’)
返回 [‘wd’,‘ur’]
cutQueryString()
返回URL?
(参数)前⾯
的内容
cutQueryString(‘/s?
wd=SQL%E4%B8%AD%E7%9A%84split&ur=qwguq’)
返回 /s
函数⽤途举例结果
8、IP操作函数
函数⽤途举例结果IPv4StringToNum(s)将IPV4转为数值,⾮IPV4的转化为0IPv4StringToNum(‘23.217.198.69’)IPv4StringToNum(‘adwh.124.qwfqw’)返回 400148037返回 0 IPv4NumToString(num)将数值转为IPV4IPv4NumToString(400148037)返回 23.217.198.69
IPv4NumToStringClassC(num)将数值转为IPV4,且最后的段位⽤xxx代
替
IPv4NumToStringClassC(400148037)返回 23.
9、表操作
9.1 表连接操作
函数⽤途举例结果INNER JOIN内连接A表 INNER JOIN B表A表与B表的公共部分LEFT OUTER JOIN左外连接 A 表 LEFT OUTER JOIN B表A表不在B表中的部分
安全生产汇报材料RIGHT OUTER JOIN右外连接 A 表 RIGHT OUTER JOIN B表B表不在A表中的部分
FULL OUTER JOIN全外连接 A 表 FULL OUTER JOIN B表A与B表全部,没有为NULL
9.2 LIMIT操作
函数⽤途举例结果
LIMIT N查询N条数据,⼀般跟ORDER BY 连⽤ORDER BY hit DESC LIMIT 10按照hit列降排取
前10
LIMIT N BY Clau 按照Clau列查询N条数据,⼀般跟
ORDER BY 连⽤
SELECT date, domain, count(1) AS hit from db.tb where…GROUP BY date, domain,ORDER BY
hit DESCLIMIT 10 BY date
取每天TOP10的
域名
10、字典操作
函数⽤途举例结果dictGetString()字典映射dictGetString(‘ck_abc_dic’, ‘ck_value’, tuple(_abc))
本⽂章转载⾃:wanpingdou.blog.csdn/article/details/85250030