Freigeben über


vector_avg Aggregatfunktion

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

Berechnet den elementweisen Mittelwert von Vektoren in einem Aggregat. Gibt einen Vektor zurück, bei dem jedes Element das arithmetische Mittel der entsprechenden Elemente über alle Eingabevektoren hinweg ist.

Syntax

vector_avg(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 der Mittelwert 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. 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 average per category (with GROUP BY)
> SELECT category, vector_avg(embedding) AS centroid
    FROM vector_data
    GROUP BY category
    ORDER BY category;
  category: A, centroid: [3.0, 6.0, 9.0]
  category: B, centroid: [2.0, 4.0, 6.0]

-- Scalar aggregation (no GROUP BY)
> SELECT vector_avg(embedding) AS overall_centroid FROM vector_data;
  overall_centroid: [2.5, 5.0, 7.5]