Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Fonctions mathématiques

acos

Introduit dans : v1.1.0

Renvoie l’arccosinus de l’argument.

Syntaxe

acos(x)

Arguments

Valeur renvoyée

Renvoie l’arccosinus de x Float*

Exemples

Exemple d’utilisation

SELECT acos(0.5);
1.0471975511965974

acosh

Introduit dans : v20.12.0

Renvoie le cosinus hyperbolique inverse.

Syntaxe

acosh(x)

Arguments

  • x — Cosinus hyperbolique de l’angle. Valeurs comprises dans l’intervalle : 1 ≤ x < +∞. (U)Int* ou Float* ou Decimal*

Valeur renvoyée

Renvoie l’angle, en radians. Valeurs comprises dans l’intervalle : 0 ≤ acosh(x) < +∞. Float64

Exemples

Exemple d’utilisation

SELECT acosh(1)
0

asin

Introduit dans : v1.1.0

Calcule l'arcsinus de l'argument donné. Pour les arguments compris dans l'intervalle [-1, 1], renvoie une valeur comprise dans l'intervalle [-pi() / 2, pi() / 2].

Syntaxe

asin(x)

Arguments

Valeur renvoyée

Renvoie la valeur de l’arcsinus de l’argument x fourni Float64

Exemples

inverse

SELECT asin(1.0) = pi() / 2, sin(asin(1)), asin(sin(1))
1	1	0.9999999999999999

float32

SELECT toTypeName(asin(1.0::Float32))
Float64

nan

SELECT asin(1.1), asin(-2), asin(inf), asin(nan)
nan	nan	nan	nan

asinh

Introduit dans : v20.12.0

Renvoie le sinus hyperbolique réciproque.

Syntaxe

asinh(x)

Arguments

  • x — Sinus hyperbolique de l’angle. Valeurs de l’intervalle : -∞ < x < +∞. (U)Int* ou Float* ou Decimal*

Valeur renvoyée

Renvoie l’angle en radians. Valeurs de l’intervalle : -∞ < asinh(x) < +∞. Float64

Exemples

Utilisation de base

SELECT asinh(0)
0

atan

Introduit dans : v1.1.0

Renvoie l’arctangente de l’argument.

Syntaxe

atan(x)

Arguments

Valeur renvoyée

Renvoie l’arctangente de x. Float*

Exemples

Exemple d'utilisation

SELECT atan(1);
0.7853981633974483

atan2

Introduit dans : v20.12.0

Renvoie atan2, c’est-à-dire l’angle dans le plan euclidien, exprimé en radians, entre l’axe des x positifs et la demi-droite passant par le point (x, y) ≠ (0, 0).

Syntaxe

atan2(y, x)

Arguments

Valeur renvoyée

Renvoie l'angle θ tel que -π < θ ≤ π, en radians Float64

Exemples

Exemple d'utilisation

SELECT atan2(1, 1)
0.7853981633974483

atanh

Introduite dans : v20.12.0

Renvoie l'arctangente hyperbolique.

Syntaxe

atanh(x)

Arguments

  • x — Tangente hyperbolique d’un angle. Valeurs comprises dans l’intervalle : -1 < x < 1. (U)Int*, Float* ou Decimal*. (U)Int* ou Float* ou Decimal*

Valeur renvoyée

Renvoie l’angle, en radians. Valeurs comprises dans l’intervalle : -∞ < atanh(x) < +∞ Float64

Exemples

Exemple d’utilisation

SELECT atanh(0)
0

cbrt

Introduit dans : v1.1.0

Renvoie la racine cubique de l’argument.

Syntaxe

cbrt(x)

Arguments

Valeur renvoyée

Renvoie la racine cubique de x. Float*

Exemples

Exemple d'utilisation

SELECT cbrt(8);
2

cos

Introduite dans : v1.1.0

Renvoie le cosinus de l’argument.

Syntaxe

cos(x)

Arguments

Valeur renvoyée

Renvoie le cosinus de x. Float*

Exemples

Exemple d’utilisation

SELECT cos(0);
1

cosh

Introduit dans : v20.12.0

Renvoie le cosinus hyperbolique de l’argument.

Syntaxe

cosh(x)

Arguments

  • x — L’angle, en radians. Valeurs de l’intervalle : -∞ < x < +∞. (U)Int* ou Float* ou Decimal*

Valeur renvoyée

Renvoie des valeurs de l’intervalle : 1 ≤ cosh(x) < +∞ Float64

Exemples

Utilisation de base

SELECT cosh(0)
1

degrés

Disponible depuis : v22.2.0

Convertit des radians en degrés.

Syntaxe

degrees(x)

Arguments

Valeur renvoyée

Renvoie la valeur de x en degrés. Float64

Exemples

Utilisation de base

SELECT degrees(3.141592653589793)
180

e

Disponible depuis : v1.1.0

Renvoie la constante d'Euler (e).

Syntaxe

e()

Arguments

  • Aucun.

Valeur renvoyée

Renvoie la constante d'Euler Float64

Exemples

Exemple d’utilisation

SELECT e();
2.718281828459045

erf

Introduit dans : v1.1.0

Si x est non négatif, alors erf(x/(σ√2)) est la probabilité qu’une variable aléatoire suivant une loi normale d’écart type σ prenne une valeur s’écartant de la valeur attendue de plus de x.

Syntaxe

erf(x)

Arguments

Valeur renvoyée

Renvoie la valeur de la fonction d'erreur, de type Float*

Exemples

Règle des trois sigmas

SELECT erf(3 / sqrt(2))
┌─erf(divide(3, sqrt(2)))─┐
│      0.9973002039367398 │
└─────────────────────────┘

erfc

Introduit dans : v1.1.0

Renvoie un nombre proche de 1-erf(x) sans perte de précision pour des valeurs élevées de x.

Syntaxe

erfc(x)

Arguments

Valeur renvoyée

Renvoie la valeur de la fonction d’erreur complémentaire Float*

Exemples

Exemple d’utilisation

SELECT erfc(0);
1

exp

Introduit dans : v1.1.0

Renvoie e à la puissance x, où x est l’argument fourni à la fonction.

Syntaxe

exp(x)

Arguments

Valeur renvoyée

Renvoie e^x Float*

Exemples

Utilisation de base

SELECT round(exp(-1), 4)
┌─round(exp(-1), 4)─┐
│            0.3679 │
└───────────────────┘

exp10

Introduit dans : v1.1.0

Renvoie 10 à la puissance de l’argument spécifié.

Syntaxe

exp10(x)

Arguments

Valeur renvoyée

Renvoie 10^x Float*

Exemples

Exemple d’utilisation

SELECT exp10(2);
100

exp2

Introduit dans : v1.1.0

Renvoie 2 à la puissance de l’argument spécifié.

Syntaxe

exp2(x)

Arguments

Valeur renvoyée

Renvoie 2^x Float*

Exemples

Exemple d’utilisation

SELECT exp2(3);
8

factorial

Introduite dans : v22.11.0

Calcule la factorielle d'une valeur entière. La factorielle de 0 est 1. De même, la fonction factorial() renvoie 1 pour toute valeur négative. La valeur positive maximale de l'argument d'entrée est 20 ; une valeur de 21 ou plus provoquera une exception.

Syntaxe

factorial(n)

Arguments

  • n — Valeur entière dont on calcule la factorielle. La valeur maximale est 20. (U)Int8/16/32/64

Valeur renvoyée

Renvoie la factorielle de l'argument sous forme de UInt64. Renvoie 1 si l'argument vaut 0 ou s'il s'agit d'une valeur négative. UInt64

Exemples

Exemple d’utilisation

SELECT factorial(10)
3628800

hypot

Introduit dans : v20.12.0

Renvoie la longueur de l’hypoténuse d’un triangle rectangle. Hypot évite les problèmes pouvant survenir lors de l’élévation au carré de nombres très grands ou très petits.

Syntaxe

hypot(x, y)

Arguments

Valeur renvoyée

Renvoie la longueur de l’hypoténuse d’un triangle rectangle. Float64

Exemples

Utilisation de base

SELECT hypot(1, 1)
1.4142135623730951

intExp10

Introduit dans : v1.1.0

Identique à exp10, mais renvoie un nombre UInt64.

Syntaxe

intExp10(x)

Arguments

Valeur renvoyée

Renvoie 10^x. UInt64

Exemples

Exemple d’utilisation

SELECT intExp10(2);
100

intExp2

Introduit dans : v1.1.0

Comme exp2, mais renvoie une valeur UInt64.

Syntaxe

intExp2(x)

Arguments

Valeur renvoyée

Renvoie 2^x. UInt64

Exemples

Exemple d'utilisation

SELECT intExp2(3);
8

isPrime

Introduite dans : v26.5.0

Renvoie 1 si l’argument est un nombre premier, sinon 0.

Utilise un bitmap de recherche exact pour les petites valeurs et un test Miller-Rabin déterministe pour les valeurs plus grandes. Le résultat est exact pour tous les types d’entrée pris en charge.

Pour les types d’entiers non signés de plus grande taille (UInt128, UInt256), utilisez plutôt isProbablePrime.

Syntaxe

isPrime(n)

Arguments

Valeur renvoyée

Renvoie 1 si n est premier, 0 sinon. UInt8

Exemples

Nombre premier

SELECT isPrime(17)
1

Nombre composé

SELECT isPrime(18)
0

Grand nombre premier en UInt64

SELECT isPrime(18446744073709551557)
1

Valeur maximale de UInt64

SELECT isPrime(18446744073709551615)
0

isProbablePrime

Introduit dans : v26.5.0

Renvoie 1 si l’argument est probablement premier, 0 s’il est assurément composé.

Pour UInt8, UInt16, UInt32 et UInt64, le résultat est exact et correspond à isPrime. L’argument rounds est ignoré.

Pour UInt128 et UInt256, une valeur de retour de 1 est probabiliste. L’argument optionnel rounds détermine combien d’itérations de Miller-Rabin sont utilisées : augmenter le nombre d’itérations réduit la probabilité d’un faux positif et accroît le temps d’exécution. Avec des témoins choisis uniformément au hasard, le taux de faux positifs pour un composé donné est borné par 4^(-rounds) ; la valeur par défaut 25 maintient cette borne en dessous de 10^-15, et la valeur maximale 256 la maintient en dessous de 10^-154.

La fonction est déterministe : les témoins sont initialisés à partir de n, de sorte que la même paire (n, rounds) produit toujours le même résultat. La borne 4^(-rounds) est la probabilité, pour chaque entrée, avec des témoins choisis uniformément au hasard ; avec notre initialisation déterministe, elle décrit plutôt une fraction des entrées — un composé qui trompe sa séquence de témoins renverra systématiquement 1.

Syntaxe

isProbablePrime(n[, rounds])

Arguments

  • n — Entier non signé dont on veut tester la primalité. UInt8 ou UInt16 ou UInt32 ou UInt64 ou UInt128 ou UInt256
  • rounds — Constante entière positive facultative dans [1, 256]. Nombre d’itérations de Miller-Rabin pour UInt128/UInt256 (ignoré pour les types de taille inférieure). Valeur par défaut : 25. UInt8 ou UInt16 ou UInt32 ou UInt64

Valeur renvoyée

Renvoie 1 si n est probablement premier, 0 s’il est certainement composé. UInt8

Exemples

Petit nombre premier

SELECT isProbablePrime(17)
1

Petit composé

SELECT isProbablePrime(18)
0

Plus grand nombre premier UInt64 (résultat exact)

SELECT isProbablePrime(18446744073709551557)
1

Nombre premier de Mersenne M_127 (UInt128)

SELECT isProbablePrime(toUInt128('170141183460469231731687303715884105727'))
1

Nombre premier du corps de base de Curve25519 2^255 - 19 (UInt256)

SELECT isProbablePrime(toUInt256('57896044618658097711785492504343953926634992332820282019728792003956564819949'))
1

Vérification plus rapide, mais avec un niveau de confiance moindre : 5 tours

SELECT isProbablePrime(toUInt256('57896044618658097711785492504343953926634992332820282019728792003956564819949'), 5)
1

lgamma

Introduit dans : v1.1.0

Renvoie le logarithme de la fonction gamma.

Syntaxe

lgamma(x)

Arguments

  • x — Le nombre dont on veut calculer le logarithme de la fonction gamma. (U)Int* ou Float* ou Decimal*

Valeur renvoyée

Renvoie le logarithme de la fonction gamma de x. Float*

Exemples

Exemple d'utilisation

SELECT lgamma(5);
3.1780538303479458

log

Introduit dans : v1.1.0

Renvoie le logarithme naturel de l’argument.

Syntaxe

log(x)

Alias : ln

Arguments

Valeur renvoyée

Renvoie le logarithme naturel de x. Float*

Exemples

Exemple d'utilisation

SELECT log(10);
2.3025850938475476

log10

Introduit dans : v1.1.0

Renvoie le logarithme décimal de l’argument.

Syntaxe

log10(x)

Arguments

Valeur renvoyée

Renvoie le logarithme décimal de x. Float*

Exemples

Exemple d'utilisation

SELECT log10(100);
2

log1p

Introduit dans : v20.12.0

Calcule log(1+x). Le calcul log1p(x) est plus précis que log(1+x) pour de petites valeurs de x.

Syntaxe

log1p(x)

Arguments

Valeur renvoyée

Renvoie des valeurs de l’intervalle : -∞ < log1p(x) < +∞ Float64

Exemples

Exemple d’utilisation

SELECT log1p(0)
0

log2

Introduit dans : v1.1.0

Renvoie le logarithme binaire de l’argument.

Syntaxe

log2(x)

Arguments

Valeur renvoyée

Renvoie le logarithme binaire de x. Float*

Exemples

Exemple d’utilisation

SELECT log2(8);
3

pi

Introduit dans : v1.1.0

Renvoie pi (π).

Syntaxe

pi()

Arguments

  • Aucun.

Valeur renvoyée

Renvoie pi Float64

Exemples

Exemple d’utilisation

SELECT pi();
3.141592653589793

pow

Introduit dans : v1.1.0

Renvoie x à la puissance y.

Syntaxe

pow(x, y)

Alias : power

Arguments

Valeur renvoyée

Renvoie x^y Float64

Exemples

Exemple d’utilisation

SELECT pow(2, 3);
8

proportionsZTest

Introduit dans : v22.3.0

Renvoie les statistiques du test Z de comparaison de deux proportions, un test statistique permettant de comparer les proportions de deux populations x et y. La fonction prend en charge les méthodes d’estimation poolée et non poolée de l’erreur standard. Dans la version poolée, les deux proportions sont moyennées et une seule proportion est utilisée pour estimer l’erreur standard. Dans la version non poolée, les deux proportions sont utilisées séparément.

Syntaxe

proportionsZTest(successes_x, successes_y, trials_x, trials_y, conf_level, pool_type)

Arguments

  • successes_x — Nombre de succès dans la population x. UInt64
  • successes_y — Nombre de succès dans la population y. UInt64
  • trials_x — Nombre d'essais dans la population x. UInt64
  • trials_y — Nombre d'essais dans la population y. UInt64
  • conf_level — Niveau de confiance du test. Float64
  • pool_type — Sélection de la méthode de mise en commun pour l'estimation de l'erreur standard. Peut être soit 'unpooled', soit 'pooled'. String

Valeur renvoyée

Renvoie un tuple contenant : z_stat (statistique Z), p_val (valeur P), ci_low (borne inférieure de l'intervalle de confiance), ci_high (borne supérieure de l'intervalle de confiance). Tuple(Float64, Float64, Float64, Float64)

Exemples

Exemple d'utilisation

SELECT proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled');
┌─proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled')───────────────────────────────┐
│ (-0.20656724435948853,0.8363478437079654,-0.09345975390115283,0.07563797172293502) │
└────────────────────────────────────────────────────────────────────────────────────┘

radians

Introduit dans : v22.2.0

Convertit des degrés en radians.

Syntaxe

radians(x)

Arguments

Valeur renvoyée

Renvoie une valeur en radians Float64

Exemples

Exemple d’utilisation

SELECT radians(180)
3.141592653589793

sigmoid

Introduit dans : v20.1.0

Calcule la fonction sigmoïde : 1 / (1 + exp(-x)). La fonction sigmoïde transforme tout nombre réel en une valeur comprise dans l’intervalle (0, 1) et est couramment utilisée en apprentissage automatique.

Syntaxe

sigmoid(x)

Arguments

Valeur renvoyée

Renvoie la sigmoïde de la valeur d’entrée, dans l’intervalle (0, 1). Float64

Exemples

Utilisation de base

SELECT sigmoid(0)
0.5

sign

Introduit dans : v21.2.0

Renvoie le signe d’un nombre réel.

Syntaxe

sign(x)

Arguments

Valeur renvoyée

Renvoie -1 pour x < 0, 0 pour x = 0, 1 pour x > 0. Int8

Exemples

Signe de zéro

SELECT sign(0)
0

Signe d’une valeur positive

SELECT sign(1)
1

Signe des nombres négatifs

SELECT sign(-1)
-1

sin

Introduit dans : v1.1.0

Renvoie le sinus de l’argument.

Syntaxe

sin(x)

Arguments

Valeur renvoyée

Renvoie le sinus de x.

Exemples

simple

SELECT sin(1.23)
0.9424888019316975

sinh

Introduit dans : v20.12.0

Renvoie le sinus hyperbolique.

Syntaxe

sinh(x)

Arguments

  • x — L’angle, en radians. Valeurs de l’intervalle : -∞ < x < +∞. (U)Int* ou Float* ou Decimal*

Valeur renvoyée

Renvoie une valeur de l’intervalle : -∞ < sinh(x) < +∞ Float64

Exemples

Exemple d’utilisation

SELECT sinh(0)
0

sqrt

Introduit dans : v1.1.0

Renvoie la racine carrée de l’argument.

Syntaxe

sqrt(x)

Arguments

Valeur renvoyée

Renvoie la racine carrée de x Float*

Exemples

Exemple d'utilisation

SELECT sqrt(16);
4

tan

Introduit dans : v1.1.0

Renvoie la tangente de l’argument.

Syntaxe

tan(x)

Arguments

Valeur renvoyée

Renvoie la tangente de x. Float*

Exemples

Exemple d’utilisation

SELECT tan(0);
0

tanh

Introduite dans : v20.1.0

Renvoie la tangente hyperbolique.

Syntaxe

tanh(x)

Arguments

Valeur renvoyée

Renvoie une valeur de l'intervalle : -1 < tanh(x) < 1 Float*

Exemples

Exemple d'utilisation

SELECT tanh(0)
0

tgamma

Introduit dans : v1.1.0

Renvoie la fonction gamma.

Syntaxe

tgamma(x)

Arguments

Valeur renvoyée

Renvoie la valeur de la fonction gamma Float*

Exemples

Exemple d'utilisation

SELECT tgamma(5);
24

widthBucket

Introduit dans : v23.3.0

Renvoie le numéro du compartiment dans lequel tombe le paramètre operand dans un histogramme comportant count compartiments de largeur égale couvrant la plage de low à high. Renvoie 0 si operand est inférieur à low, et renvoie count+1 si operand est supérieur ou égal à high. Il existe également un alias insensible à la casse, WIDTH_BUCKET, pour assurer la compatibilité avec d’autres bases de données.

Syntaxe

widthBucket(operand, low, high, count)

Alias : width_bucket

Arguments

  • operand — La valeur dont il faut déterminer le bucket. (U)Int8/16/32/64
  • low — La borne inférieure de la plage de l’histogramme. (U)Int8/16/32/64
  • high — La borne supérieure de la plage de l’histogramme. (U)Int8/16/32/64
  • count — Le nombre de buckets de largeur égale. Ne peut pas être égal à zéro. UInt8/16/32/64

Valeur renvoyée

Renvoie le numéro du bucket sous la forme d’un entier. Renvoie 0 si operand < low, et count+1 si operand >= high. UInt8/16/32/64

Exemples

Exemple d’utilisation

SELECT widthBucket(10.15, -8.6, 23, 18)
11
Navigation