Partager via


vector_sum Fonction d’agrégation

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

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

Syntaxe

vector_sum(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 somme 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 (NULL ou nonNULL vectoriels avec NULL des éléments). 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 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]