Passer au contenu principal

quantileTiming

Introduit dans : v1.1.0 Calcule, avec la précision déterminée, le quantile d’une séquence de données numériques. Le résultat est déterministe (il ne dépend pas de l’ordre de traitement de la requête). La fonction est optimisée pour traiter des séquences décrivant des distributions, comme les temps de chargement des pages web ou les temps de réponse du backend. Lors de l’utilisation de plusieurs fonctions quantile* avec des niveaux différents dans une requête, les états internes ne sont pas combinés (autrement dit, la requête est moins efficace qu’elle pourrait l’être). Dans ce cas, utilisez la fonction quantiles. Précision Le calcul est précis si :
  • Le nombre total de valeurs ne dépasse pas 5670.
  • Le nombre total de valeurs dépasse 5670, mais le temps de chargement de la page est inférieur à 1024ms.
Sinon, le résultat du calcul est arrondi au multiple de 16 ms le plus proche.
Pour calculer les quantiles du temps de chargement des pages, cette fonction est plus efficace et plus précise que quantile.
Si aucune valeur n’est fournie à la fonction (lors de l’utilisation de quantileTimingIf), NaN est renvoyé. Cela permet de distinguer ces cas de ceux qui aboutissent à zéro. Voir la clause ORDER BY pour des remarques sur le tri des valeurs NaN.
Syntaxe
quantileTiming(level)(expr)
Alias : medianTiming Paramètres
  • level — Facultatif. Niveau du quantile. Nombre à virgule flottante constant compris entre 0 et 1. Nous recommandons d’utiliser une valeur level dans l’intervalle [0.01, 0.99]. Valeur par défaut : 0.5. À level=0.5, la fonction calcule la médiane. Float*
Arguments
  • expr — Expression sur des valeurs de colonne qui renvoie un nombre de type Float*. Si des valeurs négatives sont transmises à la fonction, le comportement est indéfini. Si la valeur est supérieure à 30 000 (un temps de chargement de page de plus de 30 secondes), elle est considérée comme égale à 30 000. Float*
Valeur renvoyée Quantile au niveau spécifié. Si aucune valeur n’est transmise à la fonction (lors de l’utilisation de quantileTimingIf), NaN est renvoyé. Cela permet de distinguer ces cas de ceux qui produisent zéro. Float32 Exemples Calcul du quantile de durée
Query
CREATE TABLE t (response_time UInt32) ENGINE = Memory;
INSERT INTO t VALUES (72), (112), (126), (145), (104), (242), (313), (168), (108);

SELECT quantileTiming(response_time) FROM t;
Response
┌─quantileTiming(response_time)─┐
│                           126 │
└───────────────────────────────┘
Voir aussi
Dernière modification le 25 juin 2026