计算 Σ((x - x̅)(y - y̅)) / n
的值
说明
注意:此函数使用数值不稳定算法。如果您需要计算中的数值稳定性covarPopStable
,请使用此函数。它运行速度较慢,但计算误差较低。
语法
covarPop(x, y)
参数
x
– 数字的集合。y
数字的集合。返回值
类型:Float64
示例
CREATE TABLE test.test_covarPop(days_employed Int32, salary Int32) ENGINE = CnchMergeTree ORDER BY days_employed; -- create sample table INSERT INTO test.test_covarPop(days_employed,salary) VALUES(300,3000),(600,4000),(900,4500),(1200,4800),(1500,5000); -- insert data to table SELECT covarPop(days_employed,salary) FROM test.test_covarPop; -- find out the population covariance for days employed and salary
结果:
┌─covarPop(days_employed, salary)─┐ │ 2.88e+05 │ └─────────────────────────────────┘
计算 Σ((x - x̅)(y - y̅)) / (n - 1)
的值。
说明
注意:此函数使用数值不稳定算法。如果您需要计算中的数值稳定性covarSampStable
,请使用此函数。它运行速度较慢,但计算误差较低。
语法
covarSamp(x, y)
参数
x
– 数字的集合。y
数字的集合。返回值
n <= 1
返回 +∞。类型:Float64
示例
CREATE TABLE test.test_covarSamp(days_employed Int32, salary Int32) ENGINE = CnchMergeTree ORDER BY days_employed; -- create sample table INSERT INTO test.test_covarSamp(days_employed,salary) VALUES(300,3000),(600,4000),(900,4500),(1200,4800),(1500,5000); -- insert data to table SELECT covarSamp(days_employed,salary) FROM test.test_covarSamp; -- find out the sample covariance for days employed and salary
结果:
┌─covarSamp(days_employed, salary)─┐ │ 3.6e+05 │ └──────────────────────────────────┘
反余弦。
语法
acos(x)
参数
x
– 弧度。返回值
类型:Float64
示例
SELECT acos(-1);
结果:
┌─ACOS(-1)──────────────┐ │ 3.141592653589793e+00 │ └───────────────────────┘
反正弦。
语法
asin(x)
参数
x
– 弧度。返回值
类型:Float64
示例
SELECT asin(-1);
结果:
┌─asin(1)────────────────┐ │ 1.5707963267948966e+00 │ └────────────────────────┘
反正切。
语法
atan(x)
参数
x
– 弧度。返回值
类型:Float64
示例
SELECT atan(-1);
结果:
┌─atan(-1)───────────────┐ │ -7.853981633974483e-01 │ └────────────────────────┘
接受一个数字参数并返回接近该参数立方根的 Float64 数字。
语法
cbrt(x)
参数
x
号码。返回值
类型:Float64
示例
SELECT cbrt(8)
结果:
┌─cbrt(8)─┐ │ 2e+00 │ └─────────┘
返回大于或等于 的最小整数x
。在其他方面,它与函数相同floor
(参见上文)。
语法
ceil(x[, N])
参数
x
号码。N
— decimal-places
,一个整数值。返回值
类型:Float64
示例
SELECT ceil(1.99,2);
结果:
┌─ceil(1.99, 2)─┐ │ 1.99e+00 │ └───────────────┘
其他示例:
SELECT ceil(1.99,1);
结果:
┌─ceil(1.99, 1)─┐ │ 2e+00 │ └───────────────┘
返回大于或等于 的最小整数x
。在其他方面,它与函数相同floor
(参见上文)。
语法
ceiling(x[, N])
参数
x
号码。N
小数点后四舍五入为整数。返回值
类型:Float64
示例
SELECT ceiling(1.99,2);
结果:
┌─ceil(1.99, 2)─┐ │ 1.99e+00 │ └───────────────┘
其他示例:
SELECT ceiling(1.99,1);
结果:
┌─ceil(1.99, 1)─┐ │ 2e+00 │ └───────────────┘
余弦。
语法
cos(x)
参数
x
– 弧度。返回值
类型:Float64
示例
SELECT cos(pi())
结果:
┌─cos(pi())─┐ │ -1e+00 │ └───────────┘
误差函数erf(x)=2√π∫x0e−t2dt erf(x)
。
说明
注意:如果“x”为非负数,则为erf(x / σ√2)
具有标准差“σ”的正态分布的随机变量取与预期值相差大于“x”的值的概率。
语法
erf(x)
参数
x
号码。返回值
类型:Float64
示例
SELECT erf(3 / sqrt(2));
┌─erf(divide(3, sqrt(2)))─┐ │ 9.973002039367398e-01 │ └─────────────────────────┘
注意:三西格玛规则
互补误差函数遵循公式:erfc(x) = 1 − erf(x)。
接受一个数字参数并返回接近 1 - erf(x) 的 Float64 数字,但不会对大x
值造成精度损失。
语法
erfc(x) sql
参数
x
号码。返回值
类型:Float64
示例
SELECT erfc(3 / sqrt(2));
┌─erfc(divide(3, sqrt(2)))─┐ │ 2.6997960632601913e-03 │ └──────────────────────────┘
注意:三西格玛规则
接受一个数字参数并返回接近该参数指数的 Float64 数字。
语法
exp(x)
参数
x
号码。返回值
类型:Float64
示例
SELECT exp(1);
结果:
┌─exp(1)────────────────┐ │ 2.718281828459045e+00 │ └───────────────────────┘
接受一个数字参数并返回接近 10 的幂的 Float64 数字x
。
语法
exp10(x)
参数
x
号码。返回值
类型:Float64
示例
SELECT exp10(3);
结果:
┌─exp10(3)─┐ │ 1e+03 │ └──────────┘
接受一个数字参数并返回接近 2 的幂的 Float64 数字x
。
语法
exp2(x)
参数
x
号码。返回值
计算
类型:Float64
示例
SELECT exp2(3);
结果:
┌─exp2(3)─┐ │ 8e+00 │ └─────────┘
返回小于或等于 的最大整数x
。整数是 1/10N 的倍数,如果 1/10N 不精确,则为最接近相应数据类型的数字。
N
是整数常量,可选参数。默认情况下为零,表示四舍五入为整数。N
可能为负数。x
是任意数字类型。结果是相同类型的数字。对于整数参数,用负值舍入是有意义的N
(对于非负数N
,该函数不执行任何操作)。
如果舍入导致溢出(例如,floor(-128, -1)),则返回特定于实现的结果。
语法
floor(x[, N])
参数
x
号码。N
– 四舍五入为整数返回值
类型:Float64
示例
SELECT floor(123.45, 1);
结果:
┌─floor(123.45, 1)─┐ │ 1.234e+02 │ └──────────────────┘
其他示例:
select floor(123.45, -1);
结果:
┌─floor(123.45, -1)─┐ │ 1.2e+02 │ └───────────────────┘
接受一个数字参数并返回接近 10 的 x 次方的 UInt64 数字。
语法
intExp10(x)
参数
x
号码。返回值
类型:UInt64
示例
SELECT intExp10(3);
结果:
┌─intExp10(3)─┐ │ 1000 │ └─────────────┘
接受一个数字参数并返回接近 2 的 x 次方的 UInt64 数字。
语法
intExp2(x)
参数
x
号码。返回值
类型:UInt64
示例
SELECT intExp2(3);
结果:
┌─intExp2(3)─┐ │ 8 │ └────────────┘
伽马函数的对数。
语法
lgamma(x)
参数
x
号码。返回值
类型:Float64
示例
SELECT lgamma(3);
结果:
┌─lgamma(3)─────────────┐ │ 6.931471805599453e-01 │ └───────────────────────┘
接受一个数字参数并返回接近该参数自然对数的 Float64 数字。
语法
ln(x)
参数
x
号码。返回值
类型:Float64
示例
select ln(2.7182818)
结果:
┌─ln(2.7182818)─────────┐ │ 9.999999895305024e-01 │ └───────────────────────┘
接受一个数字参数并返回接近该参数的十进制对数的 Float64 数字。
语法
log10(x) sql
参数
x
号码。返回值
类型:Float64
示例
SELECT log10(3);
结果:
┌─log10(3)───────────────┐ │ 4.7712125471966244e-01 │ └────────────────────────┘
接受一个数字参数并返回接近该参数的二进制对数的 Float64 数字。
语法
log2(x)
参数
x
号码。返回值
类型:Float64
示例
select log2(3);
结果:
┌─log2(3)───────────────┐ │ 1.584962500721156e+00 │ └───────────────────────┘
返回接近于π的Float64数。
语法
pi()
参数
返回值
类型:Float64
示例
SELECT pi();
结果:
┌─pi()──────────────────┐ │ 3.141592653589793e+00 │ └───────────────────────┘
接受两个数值参数 x 和 y。返回接近 x 的 y 次方的 Float64 数字。
语法
pow(x, y)
参数
x
号码。返回值
类型:Float64
示例
SELECT pow(2, 3);
结果:
┌─pow(2, 3)─┐ │ 8e+00 │ └───────────┘
接受两个数值参数 x 和 y。返回接近 x 的 y 次方的 Float64 数字。
别名:pow
将值四舍五入到指定的小数位数。
该函数返回指定顺序的最接近数字。如果给定数字与周围数字的距离相等,则该函数对浮点数类型使用银行家舍入法,对其他数字类型则从零开始舍入。
语法
round(expression [, decimal_places])
参数
expression
— 要四舍五入的数字。可以是任何返回数字数据类型的表达式。decimal-places
— 一个整数值。
decimal-places > 0
是,那么函数会将值四舍五入到小数点右边。decimal-places < 0
是,那么函数会将值四舍五入到小数点左边。decimal-places = 0
是,则函数将值四舍五入为整数。在这种情况下,可以省略参数。返回值:
类型:Float64
示例
SELECT round(1.1234);
结果:
┌─round(1.1234)─┐ │ 1e+00 │ └───────────────┘
其他示例
SELECT round(1.1234,2);
结果:
┌─round(1.1234, 2)─┐ │ 1.12e+00 │ └──────────────────┘
接受一个数字。如果数字小于 17,则返回 17。否则,将数字向下舍入为以下集合中的数字:17、25、35、45、55。此函数特定于 Yandex.Metrica,用于实现用户年龄报告。
语法
roundAge(num)
参数
num
年龄。返回值
类型:UInt8
示例
SELECT roundAge(50);
结果:
┌─roundAge(50)─┐ │ 45 │ └──────────────┘
其他示例
SELECT roundAge(16), roundAge(17),roundAge(18);
结果:
┌─roundAge(16)─┬─roundAge(17)─┬─roundAge(18)─┐ │ 17 │ 17 │ 18 │ └──────────────┴──────────────┴──────────────┘
接受一个数字并将其向下舍入为指定数组中的元素。如果该值小于或大于边界,则返回最低或最高边界。
语法
roundDown(number, array)
参数
number
号码。array
– 阵列。返回值
示例
SELECT roundDown(2, [6, 7, 8]);
结果:
┌─roundDown(2, [6, 7, 8])─┐ │ 6 │ └─────────────────────────┘
接受一个number
。如果数字小于一,则返回 0。否则,它将数字向下舍入为以下集合中的数字:1、10、30、60、120、180、240、300、600、1200、1800、3600、7200、18000、36000。此功能特定于 Yandex. Metrica,用于实现会话长度报告。
语法
roundDuration(number)
参数
x
号码。返回值
示例
SELECT roundDuration(230);
结果:
┌─roundDuration(230)─┐ │ 180 │ └────────────────────┘
接受number
。如果number
小于一,则返回 0。否则,将 向下舍入number
为最接近的(非负整数)二的度数。
语法
roundToExp2(number)
参数
number
号码。返回值
示例
SELECT roundToExp2(31);
结果:
┌─roundToExp2(31)─┐ │ 16 │ └─────────────────┘
正弦。
语法
sin(x)
参数
x
– 弧度。返回值
类型:Float64
示例
SELECT sin(pi()/2)
结果:
┌─sin(divide(pi(), 2))─┐ │ 1e+00 │ └──────────────────────┘
接受一个数字参数并返回接近该参数平方根的 Float64 数字。
语法
sqrt(x)
参数
x
号码。返回值
类型:Float64
示例
SELECT sqrt(4);
结果:
┌─sqrt(4)─┐ │ 2e+00 │ └─────────┘
切线。
语法
tan(x)
参数
x
– 弧度。返回值
类型:Float64
示例
SELECT tan(pi()/4);
结果:
┌─tan(divide(pi(), 4))──┐ │ 9.999999999999999e-01 │ └───────────────────────┘
注意:结果具有特定的精度
计算 arg 的伽马函数。
语法
tgamma(x)
参数
x
号码。返回值
示例
select tgamma(10);
结果:
┌─tgamma(10)─────────────┐ │ 3.6287999999999994e+05 │ └────────────────────────┘
返回绝对值最大的整数,该整数的绝对值小于或等于x
。在其他所有方面,它与“floor”函数相同(参见上文)。
语法
trunc(x[, N]) truncate(x[, N])
参数
x
号码。N
小数点后四舍五入为整数。返回值
示例
SELECT trunc(100.11, 1)
结果:
┌─trunc(100.11, 1)─┐ │ 1.001e+02 │ └──────────────────┘
从表中删除所有数据。当IF EXISTS
省略该子句时,如果表不存在,查询将返回错误。
该TRUNCATE
查询不支持视图、文件、URL、缓冲区和空表引擎。
语法
TRUNCATE TABLE [IF EXISTS] [db.]name
参数
name
– 表名称。[IF EXISTS]
可选,如果表不存在,查询将返回错误。[db.]
可选,数据库名称。返回值
示例
CREATE TABLE test.test_truncate (id Int32) ENGINE = CnchMergeTree ORDER BY id; INSERT INTO test.test_truncate(id) VALUES(1),(2),(3),(4),(5); -- insert 1,2,3,4,5 to table SELECT * FROM test.test_truncate; -- check the date before truncate
┌─id─┐ │ 1 │ │ 2 │ │ 3 │ │ 4 │ │ 5 │ └────┘
TRUNCATE TABLE test.test_truncate SELECT * FROM test.test_truncate