Kategorien:

Vector functions, Aggregatfunktionen

VECTOR_SUM

Berechnet die elementweise Summe von -Vektoren in einem Aggregat Gibt einen Vektor zurück, bei dem jedes Element die Summe der entsprechenden Elemente über alle Eingabevektoren ist.

Siehe auch:

VECTOR_MIN, VECTOR_MAX, VECTOR_AVG, SUM, Vektoreinbettungen

Syntax

VECTOR_SUM( <vector_column> )
Copy

Argumente

vector_column

Eine Spalte mit VECTOR-Werten. Alle Vektoren in der Spalte müssen denselben Elementtyp und dieselbe Dimension aufweisen.

Rückgabewerte

Gibt einen VECTOR-Wert mit demselben Elementtyp und derselben Dimension wie die Eingabevektoren zurück. Jedes Element im Ergebnisvektor ist die Summe der entsprechenden Elemente über alle Eingabevektoren hinweg.

Nutzungshinweise

  • NULL-Werte werden in der Aggregation ignoriert.

  • Wenn alle Werte in der Gruppe NULL sind, gibt die Funktion NULL zurück.

  • Alle Eingabevektoren in der Spalte müssen die gleiche Dimension und den gleichen Elementtyp aufweisen.

  • Vektorfunktionen werden so optimiert, dass die Genauigkeit der Gleitkommazahlen verringert werden kann. Die Ergebnisse dieser Funktion haben eine Fehlerspanne von bis zu 1e-4.

Beispiele

Dieses Beispiel zeigt die Berechnung der elementweisen Summe von Vektoren:

CREATE OR REPLACE TABLE vector_data (
  id INT,
  category VARCHAR,
  embedding VECTOR(FLOAT, 3)
);

INSERT INTO vector_data
SELECT 1, 'A', [1.0, 2.0, 3.0]::VECTOR(FLOAT, 3)
UNION ALL SELECT 2, 'A', [4.0, 5.0, 6.0]::VECTOR(FLOAT, 3)
UNION ALL SELECT 3, 'B', [2.0, 1.0, 4.0]::VECTOR(FLOAT, 3)
UNION ALL SELECT 4, 'B', [3.0, 2.0, 1.0]::VECTOR(FLOAT, 3);

-- Compute sum for each category
SELECT category, VECTOR_SUM(embedding) AS sum_vector
  FROM vector_data
  GROUP BY category
  ORDER BY category;
Copy
+----------+------------------+
| CATEGORY | SUM_VECTOR       |
+----------+------------------+
| A        | [5.0, 7.0, 9.0]  |
| B        | [5.0, 3.0, 5.0]  |
+----------+------------------+

Dieses Beispiel zeigt die skalare Aggregation (kein GROUP BY):

SELECT VECTOR_SUM(embedding) AS total_sum
  FROM vector_data;
Copy
+--------------------+
| TOTAL_SUM          |
+--------------------+
| [10.0, 10.0, 14.0] |
+--------------------+