Partager via


vector_avg Fonction d’agrégation

S’applique à :check marqué oui Databricks Runtime 18.1 et versions ultérieures

Calcule la moyenne des vecteurs à l’échelle de l’élément dans un agrégat. Retourne un vecteur où chaque élément est la moyenne arithmétique des éléments correspondants sur tous les vecteurs d’entrée.

Syntaxe

vector_avg(vectors) [FILTER ( WHERE cond ) ]

Arguments

  • vecteurs : colonne d’expressions ARRAY<FLOAT> représentant des vecteurs. Tous les vecteurs doivent avoir la même dimension.
  • cond : expression booléenne facultative filtrant les lignes utilisées pour l’agrégation.

Retours

Valeur ARRAY<FLOAT> avec la même dimension que les vecteurs d’entrée. Chaque élément du résultat est la moyenne des éléments correspondants sur tous les vecteurs d’entrée.

NULL les valeurs et les non-vecteursNULL contenant un NULL élément sont ignorés dans l’agrégation. Retourne NULL si toutes les valeurs du groupe ne sont pas valides. Retourne un tableau [] vide si tous les vecteurs d’entrée sont vides.

Remarques

  • Seul ARRAY<FLOAT> est pris en charge ; d’autres types tels que ARRAY<DOUBLE> ou ARRAY<DECIMAL> déclenchent une erreur.
  • Tous les vecteurs d’entrée doivent avoir la même dimension ; sinon, la fonction déclenche VECTOR_DIMENSION_MISMATCH.
  • Un vecteur quiNULL contient un NULL élément est traité comme NULL.

Conditions de l’erreur

Exemples

-- 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]