Freigeben über


vector_sum Aggregatfunktion

Gilt für:check marked yes Databricks Runtime 18.1 und höher

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 hinweg ist.

Syntax

vector_sum(vectors) [FILTER ( WHERE cond ) ]

Argumente

  • Vektoren: Eine Spalte mit ARRAY<FLOAT> Ausdrücken, die Vektoren darstellen. Alle Vektoren müssen dieselbe Dimension aufweisen.
  • cond: Ein optionaler boolescher Ausdruck, der die zeilen filtert, die für die Aggregation verwendet werden.

Rückkehr

Ein ARRAY<FLOAT> Wert mit derselben Dimension wie die Eingabevektoren. Jedes Element im Ergebnis ist die Summe der entsprechenden Elemente über alle Eingabevektoren hinweg.

NULL Werte und NichtvektorenNULL , die ein NULL Element enthalten, werden in der Aggregation ignoriert. Gibt zurück NULL , wenn alle Werte in der Gruppe ungültig sind (NULL oder nichtNULL Vektoren mit NULL Elementen). Gibt ein leeres Array [] zurück, wenn alle Eingabevektoren leer sind.

Hinweise

  • Nur ARRAY<FLOAT> wird unterstützt; andere Typen wie ARRAY<DOUBLE> z. B. oder ARRAY<DECIMAL> Auslösen eines Fehlers.
  • Alle Eingabevektoren müssen dieselbe Dimension aufweisen; andernfalls löst die Funktion VECTOR_DIMENSION_MISMATCH aus.
  • Ein NichtvektorNULL , der ein NULL Element enthält, wird als NULLbehandelt.

Fehlerbedingungen

Beispiele

-- Element-wise sum per category (with GROUP BY)
> SELECT category, vector_sum(embedding) AS sum_vector
    FROM vector_data
    GROUP BY category
    ORDER BY category;
  category: A, sum_vector: [5.0, 7.0, 9.0]
  category: B, sum_vector: [5.0, 3.0, 5.0]

-- Scalar aggregation (without GROUP BY)
> SELECT vector_sum(embedding) AS total_sum FROM vector_data;
  total_sum: [10.0, 10.0, 14.0]