clickhouse sql使用1

1、arrayMap(fun1,arr1)使用
第一个参数是一个 lambda 函数,第二个参数是一个集合
eg、select arrayMap(x->x+1,[1,2,3])
对集合中每个数+1在这里插入图片描述
2、arrayJoin(arr1) 将集合由行转列
eg、 select arrayJoin([1,2,3])
eg、select arrayJoin(arrayMap(x->x+1,[1,2,3]))
在这里插入图片描述
3、Tuple元组,ClickHouse数据库中的一种数据类型,一个字段中存储由不同数据类型组成的元组
eg、select tuple(1,‘A’)
在这里插入图片描述

4、range([start, ] end [, step])
start:起始值
end:结束值
step:步长
eg、select range(1,10,3)
在这里插入图片描述
5、日期函数
toDateTime(‘2016-06-15 23:00:00’) AS time,
toDate(time) AS date_local,
toDate(time, ‘Asia/Yekaterinburg’) AS date_yekat, 指定时区
toString(time, ‘US/Samoa’) AS time_samoa
对日期操作加时间多少单位有second
minute
hour
day
week
month
quarter
year
date_add(unit, value, date)
SELECT date_add(YEAR, 3, toDate(‘2018-01-01’));
在这里插入图片描述
6、map(key,value,…) map函数可以存储一个对象
SELECT map(‘key1’,1,‘k2’,2)
在这里插入图片描述
7、groupArray()根据某个字段设置为1组,配合map函数可以将不同班级的学生进行班级分组,同一个班级的学生放在一个集合中作为一个字段
有一个原表数据
在这里插入图片描述
转成一条记录将日期作为一列值为对应的pass字段(列转行)
形如
在这里插入图片描述
eg、select eq_name,eq_code, groupArray(map(‘hourRange’, toString(hour_range), ‘pass’, toString(pass))) as list from hour_table group by eq_name,eq_code order by eq_name在这里插入图片描述
list形如这样一个对象集合list是一个集合存放了具有属性hourRange,pass的对象稽核部
在这里插入图片描述

8、select 查询保留指定位数
eg、select toDecimalString(0, 2) ,toDecimalString(0.1, 2)
在这里插入图片描述
10 两张表关联A是一个全量表,B是一个部分表具有值字段,当A和B表设备和日期相等则使用B字段的值,无法B字段的设备无对象日期则A的该时间点字段赋值0,使用left join 配合COALESCE(null,1)函数
COALESCE(参数1,参数2,参数3…)函数使用,只要前面一个参数是null,则结果是用接下来参数
eg、COALESCE(0 ,1,2) 结果为0, select COALESCE(null ,1,2) 结果为1, select COALESCE(null ,null,2)结果为2
在这里插入图片描述

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值