VECTOR_ SUM
On this page
Adds all vectors in a column and returns a vector which is the sum of those vectors.
Syntax
VECTOR_SUM(vector_expression)
Arguments
-
vector_
: An expression that evaluates to a vector.expression Vectors can be stored in SingleStore using the BLOB
type (BLOB Types).
Return Type
Returns the type of the argument (the vector_
).
Using VECTOR_ SUM
with Vectors as BLOBs
The following examples demonstrate use of VECTOR_
with the BLOB
type.
Example 1 - Adding Two Vectors
Create a table with a column of type BLOB
to store the vectors and insert data into that table.vec
and type BLOB
, will store the vectors.
CREATE TABLE vectors_b (id int, vec BLOB not null);INSERT INTO vectors_b VALUES (1, JSON_ARRAY_PACK('[0.1, 0.8, 0.2, 0.555]'));INSERT INTO vectors_b VALUES (2, JSON_ARRAY_PACK('[0.45, 0.55, 0.495, 0.5]'));
The following query sums the vectors in the vec
column and uses JSON_
to see the results in JSON format.
SELECT JSON_ARRAY_UNPACK(VECTOR_SUM(vec)) AS vector_sumFROM vectors_b;
+---------------------------------------------------+
| vector_sum |
+---------------------------------------------------+
| [0.550000012,1.35000002,0.694999993,1.05500007] |
+---------------------------------------------------+
1 row in set (0.01 sec)
The following query uses HEX
to view the results in hexadecimal format.
SELECT HEX(VECTOR_SUM(vec)) AS vector_sumFROM vectors_b;
+---------------------------------------------------+
| vector_sum |
+---------------------------------------------------+
| CDCC0C3FCDCCAC3F85EB313F3E0A873F |
+---------------------------------------------------+
Formatting Binary Vector Data for BLOBs
When using the BLOB
type for vector operations, vector data can be formatted using JSON_
.BLOB
s.BLOB
containing packed numbers in little-endian byte order.BLOB
s can be of any length; however, the input blob length must be divisible by the size of the packed vector elements .
Last modified: February 12, 2025