数学类函数

向量支持以下数学类函数:

SQRT

函数说明

sqrt 函数用于计算向量中每个元素的平方根。

函数语法

  1. > SELECT sqrt(vector_column) FROM table_name;

返回类型

返回一个新的 vecf64 类型的向量,其中包含原始向量中每个元素的平方根。

示例

  1. drop table if exists vec_table;
  2. create table vec_table(a int, b vecf32(3), c vecf64(3));
  3. insert into vec_table values(1, "[1,2,3]", "[4,5,6]");
  4. mysql> select * from vec_table;
  5. +------+-----------+-----------+
  6. | a | b | c |
  7. +------+-----------+-----------+
  8. | 1 | [1, 2, 3] | [4, 5, 6] |
  9. +------+-----------+-----------+
  10. 1 row in set (0.00 sec)
  11. mysql> select sqrt(b) from vec_table;
  12. +---------------------------------------------+
  13. | sqrt(b) |
  14. +---------------------------------------------+
  15. | [1, 1.4142135623730951, 1.7320508075688772] |
  16. +---------------------------------------------+
  17. 1 row in set (0.00 sec)

限制

  • 向量的元素不能为负数。

ABS

函数说明

abs 函数用于计算向量的绝对值。

函数语法

  1. > SELECT ABS(vector_column) FROM table_name;

返回类型

返回一个相同类型的新向量,其中包含原始向量中每个元素的绝对值。

示例

  1. drop table if exists vec_table;
  2. create table vec_table(a int, b vecf32(3), c vecf64(3));
  3. insert into vec_table values(1, "[-1,-2,3]", "[4,5,6]");
  4. mysql> select * from vec_table;
  5. +------+-------------+-----------+
  6. | a | b | c |
  7. +------+-------------+-----------+
  8. | 1 | [-1, -2, 3] | [4, 5, 6] |
  9. +------+-------------+-----------+
  10. 1 row in set (0.00 sec)
  11. mysql> select abs(b) from vec_table;
  12. +-----------+
  13. | abs(b) |
  14. +-----------+
  15. | [1, 2, 3] |
  16. +-----------+
  17. 1 row in set (0.01 sec)

CAST

函数说明

cast 函数用于显式将一个向量从一个向量类型转换为另一个向量类型。

函数语法

  1. > SELECT CAST(vector AS vector_type) FROM table_name;

参数

  • vector:输入向量。
  • vector_type:新的向量类型。

返回类型

新的 vector_type 向量。

示例

  1. drop table if exists vec_table;
  2. create table vec_table(a int, b vecf32(3), c vecf64(3));
  3. insert into vec_table values(1, "[1,2,3]", "[4,5,6]");
  4. mysql> select * from vec_table;
  5. +------+-----------+-----------+
  6. | a | b | c |
  7. +------+-----------+-----------+
  8. | 1 | [1, 2, 3] | [4, 5, 6] |
  9. +------+-----------+-----------+
  10. 1 row in set (0.00 sec)
  11. mysql> select b + cast("[1,2,3]" as vecf32(3)) from vec_table;
  12. +--------------------------------+
  13. | b + cast([1,2,3] as vecf32(3)) |
  14. +--------------------------------+
  15. | [2, 4, 6] |
  16. +--------------------------------+
  17. 1 row in set (0.00 sec)

SUMMATION

函数说明

summation 函数返回向量中所有元素的总和。

函数语法

  1. > SELECT SUMMATION(vector_column) FROM table_name;

返回类型

返回一个 FLOAT64 值,即向量中所有元素的总和。

示例

  1. drop table if exists vec_table;
  2. create table vec_table(a int, b vecf32(3), c vecf64(3));
  3. insert into vec_table values(1, "[1,2,3]", "[4,5,6]");
  4. mysql> select * from vec_table;
  5. +------+-----------+-----------+
  6. | a | b | c |
  7. +------+-----------+-----------+
  8. | 1 | [1, 2, 3] | [4, 5, 6] |
  9. +------+-----------+-----------+
  10. 1 row in set (0.00 sec)
  11. mysql> select summation(b) from vec_table;
  12. +--------------+
  13. | summation(b) |
  14. +--------------+
  15. | 6 |
  16. +--------------+
  17. 1 row in set (0.00 sec)