Passer au contenu principal

quantileInterpolatedWeighted

Introduit dans : v23.1.0 Calcule le quantile d’une séquence de données numériques par interpolation linéaire, en tenant compte du poids de chaque élément. Pour obtenir la valeur interpolée, toutes les valeurs transmises sont regroupées dans un tableau, puis triées selon les poids correspondants. L’interpolation des quantiles est ensuite effectuée à l’aide de la méthode du percentile pondéré, en construisant une distribution cumulative à partir des poids, puis en réalisant une interpolation linéaire à partir des poids et des valeurs pour calculer les quantiles. Lorsque plusieurs fonctions quantile* avec des niveaux différents sont utilisées dans une requête, les états internes ne sont pas combinés (c’est-à-dire que la requête est moins efficace qu’elle pourrait l’être). Dans ce cas, utilisez la fonction quantiles. Syntaxe
quantileInterpolatedWeighted(level)(expr, weight)
Alias : medianInterpolatedWeighted Paramètres
  • level — Facultatif. Niveau du quantile. Nombre constant à virgule flottante compris entre 0 et 1. Nous recommandons d’utiliser une valeur de level comprise dans l’intervalle [0.01, 0.99]. Valeur par défaut : 0.5. Pour level=0.5, la fonction calcule la médiane. Float*
Arguments
  • expr — Expression appliquée aux valeurs de la colonne, dont le résultat est de type numérique, Date ou DateTime. (U)Int* ou Float* ou Decimal* ou Date ou DateTime
  • 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 Quantile du niveau spécifié. Float64 ou Date ou DateTime Exemples Calcul d’un quantile pondéré interpolé
Query
CREATE TABLE t (
    n Int32,
    val Int32
) ENGINE = Memory;

INSERT INTO t VALUES (0, 3), (1, 2), (2, 1), (5, 4);

SELECT quantileInterpolatedWeighted(n, val) FROM t;
Response
┌─quantileInterpolatedWeighted(n, val)─┐
│                                    1 │
└──────────────────────────────────────┘
Voir aussi
Dernière modification le 25 juin 2026