Passer au contenu principal

quantileExactWeightedInterpolated

Introduit dans : v24.10.0 Calcule le quantile d’une séquence de données numériques à l’aide d’une 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 en fonction de leur poids respectif. L’interpolation du quantile est ensuite effectuée à l’aide de la méthode du percentile pondéré, en construisant une distribution cumulative basée sur les poids, puis en réalisant une interpolation linéaire à partir des poids et des valeurs pour calculer les quantiles. Lors de l’utilisation de plusieurs fonctions quantile* avec différents niveaux dans une requête, les états internes ne sont pas combinés (autrement dit, la requête s’exécute moins efficacement qu’elle ne le pourrait). Dans ce cas, utilisez la fonction quantiles. Nous recommandons vivement d’utiliser quantileExactWeightedInterpolated plutôt que quantileInterpolatedWeighted, car quantileExactWeightedInterpolated est plus précise que quantileInterpolatedWeighted. Consultez l’exemple ci-dessous pour plus de détails. Syntaxe
quantileExactWeightedInterpolated(level)(expr, weight)
Alias : medianExactWeightedInterpolated 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. Avec level=0.5, la fonction calcule la médiane. Float*
Arguments
  • expr — Expression sur les valeurs de la colonne renvoyant un type de données 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 de la valeur. UInt*
Valeur renvoyée Quantile du niveau spécifié. Float64 ou Date ou DateTime Exemples Calcul d’un quantile interpolé pondéré exact
Query
SELECT quantileExactWeightedInterpolated(n, val) FROM t;
Response
┌─quantileExactWeightedInterpolated(n, val)─┐
│                                       1.5 │
└───────────────────────────────────────────┘
Préférez quantileExactWeightedInterpolated à quantileInterpolatedWeighted
Query
SELECT
    quantileExactWeightedInterpolated(0.99)(number, 1),
    quantile(0.99)(number),
    quantileInterpolatedWeighted(0.99)(number, 1)
FROM numbers(9)
Response
┌─quantileExactWeightedInterpolated(0.99)(number, 1)─┬─quantile(0.99)(number)─┬─quantileInterpolatedWeighted(0.99)(number, 1)─┐
│                                               7.92 │                   7.92 │                                             8 │
└────────────────────────────────────────────────────┴────────────────────────┴───────────────────────────────────────────────┘
Voir aussi
Dernière modification le 29 juin 2026