VECTOR
vector(value1, value2, ...)
功能
创建一个向量类型的值。向量是一种特殊的数组类型,专门用于向量计算和相似度搜索。
参数
- value1, value2, ...: 数值类型的值,可以是 tinyint, smallint, int, bigint, float, double 或 decimal
返回结果
- vector 类型,返回包含所有参数值的向量
- 向量的元素类型根据输入参数自动推断
- 向量的维度等于参数个数
举例
SELECT vector(1, 2, 3);
-- 结果:[1,2,3]
SELECT typeof(vector(1Y, 2Y, 3Y));
-- 结果:vector(tinyint,3)
SELECT typeof(vector(1, 2, 3));
-- 结果:vector(int,3)
SELECT typeof(vector(1.0F, 2.0F, 3.0F));
-- 结果:vector(float,3)
SELECT typeof(vector(1.0, 2.0, 3.0));
-- 结果:vector(float,3)
SELECT size(vector(1, 2, 3));
-- 结果:3
举例
SELECT vector(1Y, 2Y, 3Y);
-- 结果:[1,2,3]
SELECT vector(1.0, 2.0, 3.0, 4.0);
-- 结果:[1,2,3,4]
SELECT vector(1, 2, 3) == vector(1, 2, 3);
-- 结果:true
SELECT vector(1, 2, 3) == vector(2, 3, 4);
-- 结果:false
SELECT array_distinct(vector(1, 2, 1));
-- 结果:[1,2]
SELECT v FROM VALUES (vector(2, 3, 4)), (vector(1, 2, 3)) AS t(v) ORDER BY v;
-- 结果:[1,2,3]
-- 结果:[2,3,4]
说明
- vector 类型是 array 类型的特殊形式,专门优化用于向量计算
- 支持的元素类型:tinyint (i8), smallint (i16), int (i32), bigint (i64), float, double
- 向量可以与 array 类型互相转换和混合使用
- 向量支持相等比较、排序等基本操作
- 向量常用于向量相似度搜索、机器学习和推荐系统
- 可以使用
size()
size()
函数获取向量的维度