Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantilesInterpolatedWeighted

quantilesInterpolatedWeighted

Introduit dans : v23.1.0

Calcule plusieurs quantiles d’une séquence de données numériques par interpolation linéaire, à différents niveaux, simultanément, en tenant compte du poids de chaque élément.

Cette fonction est équivalente à quantileInterpolatedWeighted, mais elle permet de calculer plusieurs niveaux de quantile en un seul passage, ce qui est plus efficace que d’appeler chaque fonction de quantile individuellement.

Syntaxe

quantilesInterpolatedWeighted(level1, level2, ...)(expr, weight)

Paramètres

  • level — Niveaux de quantile. Un ou plusieurs nombres constants à virgule flottante compris entre 0 et 1. Nous recommandons d’utiliser des valeurs level dans la plage [0.01, 0.99]. Float*

Arguments

  • expr — Expression appliquée aux valeurs de la colonne, dont le résultat est de type numérique, Date, DateTime ou DateTime64. (U)Int* ou Int128 ou UInt128 ou Int256 ou UInt256 ou Float* ou Decimal* ou Date ou DateTime ou DateTime64
  • weight — Colonne contenant les poids des éléments de la séquence. Le poids correspond au nombre d’occurrences d’une valeur. UInt*

Valeur renvoyée

Tableau de quantiles pour les niveaux spécifiés, dans le même ordre que celui où les niveaux ont été indiqués. Pour les types de données numériques, le format de sortie correspond au format d’entrée. Array((U)Int*) ou Array(Int128) ou Array(UInt128) ou Array(Int256) ou Array(UInt256) ou Array(Float*) ou Array(Decimal*) ou Array(Date) ou Array(DateTime) ou Array(DateTime64)

Exemples

Calcul de plusieurs quantiles pondérés interpolés

SELECT quantilesInterpolatedWeighted(0.25, 0.5, 0.75)(number, 1) FROM numbers(10)
┌─quantilesInterpolatedWeighted(0.25, 0.5, 0.75)(number, 1)─┐
│ [2,4,7]                                                   │
└───────────────────────────────────────────────────────────┘
Navigation