ClickHouse数据库常用算术函数
ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。
常用于时间序列数据的列数据压缩存储。
下面是他的一些常用算术函数。
-- plus
-- 计算数值的总和
select plus(1, 7);
select 1 + 6;
-- minus
-- 计算数值之间的差
select minus(7,1);
select 8-1;
-- multiply
-- 计算数值的乘积
select multiply(2, 3);
select 2*8;
-- divide
-- 计算数值的商(结果类型始终是浮点类型)
select divide(12, 2);
select 16/3;
-- intDiv
-- 计算数值的商(向下舍入取整(按绝对值))
select intDiv(5, 2); -- 结果为2
-- intDivOrZero
-- 与intDiv不同之处在于它在除以零或将最小负数除以-1时返回零
select intDivOrZero(0.99, -1); -- 返回0
select intDivOrZero(1, -1); -- 返回-1
select intDivOrZero(1, 0); -- 返回0
select intDivOrZero(0.99, -1); -- 返回0
select intDivOrZero(0.99, 0.02); -- 返回49
-- modulo
-- 计算除法后的余数
select modulo(5,2); -- 返回1
select modulo(5,3); -- 返回2
-- moduloOrZero
-- 和modulo不同之处在于,除以0时结果返回0
select moduloOrZero(5,0); --返回0
-- negate
-- 通过改变数值的符号位对数值取反,结果总是有符号的
select negate(3); --返回-3
select negate(-5.2); --返回5.2
-- abs
-- 计算数值a的绝对值,也就是说如果a<0,它返回-a; 对于无符号类型,它不执行任何操作,对于有符号整数类型,它返回无符号数
select abs(-5); --返回5
select abs(6); --返回6
-- gcd
-- 返回数值的最大公约数。除以零或将最小负数除以-1时抛出异常。
select gcd(12, 16); --返回4
select gcd(1, 3); --返回1
select gcd(5, 2.5); --报出异常error
-- lcm
-- 返回数值的最小公倍数,除以零或将最小负数除以-1时抛出异常。
select lcm(5, 2); --返回10
select lcm(0.5, 2.5); --报出异常error
-- max2
-- 比较两个值并返回最大值。返回值转换为Float64
SELECT max2(-1, 2); -- 报出异常error
-- min2
-- 比较两个值并返回最小值。
select min2(2,3); -- 报出异常error
对于max2函数和min2函数存在一些问题,后续看看是什么原因。