内置数学函数

函数说明

Nebula Graph支持以下内置数学函数。

函数说明
double abs(double x)返回x的绝对值。
double floor(double x)返回小于或等于x的最大整数。
double ceil(double x)返回大于或等于x的最小整数。
double round(double x)返回离x最近的整数值,如果x恰好在中间,则返回离0较远的整数。
double sqrt(double x)返回x的平方根。
double cbrt(double x)返回x的立方根。
double hypot(double x, double y)返回直角三角形(直角边长为x和y)的斜边长。
double pow(double x, double y)返回(x^y)的值。
double exp(double x)返回(e^x)的值。
double exp2(double x)返回(2^x)的值。
double log(double x)返回以自然数e为底x的对数。
double log2(double x)返回以2为底x的对数。
double log10(double x)返回以10为底x的对数。
double sin(double x)返回x的正弦值。
double asin(double x)返回x的反正弦值。
double cos(double x)返回x的余弦值。
double acos(double x)返回x的反余弦值。
double tan(double x)返回x的正切值。
double atan(double x)返回x的反正切值。
double rand()返回[0,1)内的随机浮点数。
int rand32(int min, int max)返回[min, max)内的一个随机32位整数。
用户可以只传入一个参数,该参数会判定为max,此时min默认为0
如果不传入参数,此时会从带符号的32位int范围内随机返回。
int rand64(int min, int max)返回[min, max)内的一个随机64位整数。
用户可以只传入一个参数,该参数会判定为max,此时min默认为0
如果不传入参数,此时会从带符号的64位int范围内随机返回。
collect()将收集的所有值放在一个列表中。
avg()返回参数的平均值。
count()返回参数的数量。
max()返回参数的最大值。
min()返回参数的最小值。
std()返回参数的总体标准差。
sum()返回参数的和。
bit_and()逐位做AND操作。
bit_or()逐位做OR操作。
bit_xor()逐位做XOR操作。
int size()返回列表或映射中元素的数量。
int range(int start, int end, int step)返回[start,end]中指定步长的值组成的列表。步长step默认为1。
int sign(double x)返回x的正负号。
如果x为0,则返回0
如果x为负数,则返回-1
如果x为正数,则返回1
double e()返回自然对数的底e(2.718281828459045)。
double pi()返回数学常数π(3.141592653589793)。
double radians()将角度转换为弧度。radians(180)返回3.141592653589793

示例

  1. # 支持聚合函数
  2. nebula> GO FROM "Tim Duncan" OVER like YIELD like._dst AS dst, $$.player.age AS age \
  3. | GROUP BY $-.dst \
  4. YIELD \
  5. $-.dst AS dst, \
  6. toInteger((sum($-.age)/count($-.age)))+avg(distinct $-.age+1)+1 AS statistics;
  7. +-----------------+------------+
  8. | dst | statistics |
  9. +-----------------+------------+
  10. | "Tony Parker" | 74.0 |
  11. +-----------------+------------+
  12. | "Manu Ginobili" | 84.0 |
  13. +-----------------+------------+
  14. Got 2 rows (time spent 4739/5064 us)