Skip to main content

Vue d’ensemble

Les fonctions arithmétiques s’appliquent à deux opérandes quelconques de type UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64, Float32 ou Float64. Avant d’effectuer l’opération, les deux opérandes sont convertis dans le type de résultat. Le type de résultat est déterminé comme suit (sauf indication contraire dans la documentation de la fonction ci-dessous) :
  • Si les deux opérandes font au plus 32 bits, la taille du type de résultat sera celle du type immédiatement supérieur au plus grand des deux opérandes (promotion de la taille des entiers). Par exemple, UInt8 + UInt16 = UInt32 ou Float32 * Float32 = Float64.
  • Si l’un des opérandes fait 64 bits ou plus, la taille du type de résultat sera la même que celle du plus grand des deux opérandes. Par exemple, UInt32 + UInt128 = UInt128 ou Float32 * Float64 = Float64.
  • Si l’un des opérandes est signé, le type de résultat le sera aussi, sinon il sera non signé. Par exemple, UInt32 * Int32 = Int64 ou UInt32 * UInt32 = UInt64.
Ces règles garantissent que le type de résultat sera le plus petit type capable de représenter tous les résultats possibles. Bien que cela introduise un risque de débordement aux limites de la plage de valeurs, cela permet d’effectuer rapidement les calculs en utilisant la largeur native maximale des entiers, soit 64 bits. Ce comportement garantit également la compatibilité avec de nombreuses autres bases de données qui proposent des entiers sur 64 bits (BIGINT) comme plus grand type entier. Exemple :
Les dépassements de capacité se produisent de la même manière qu’en C++.

abs

Introduit dans : v1.1.0 Calcule la valeur absolue de x. N’a aucun effet si x est de type non signé. Si x est de type signé, renvoie un nombre non signé. Syntaxe
Arguments
  • x — Valeur dont on veut obtenir la valeur absolue
Valeur renvoyée La valeur absolue de x Exemples Exemple d’utilisation
Query
Response

avg2

Introduit dans : v25.11.0 Calcule et renvoie la moyenne des arguments fournis. Prend en charge les types numériques et temporels. Syntaxe
Arguments
  • x1, x2] — Accepte deux valeurs pour en calculer la moyenne.
Valeur renvoyée Renvoie la moyenne des arguments fournis, promue vers le type compatible le plus large. Exemples Types numériques
Query
Response
Types décimaux
Query
Response
Types Date
Query
Response
Types DateTime
Query
Response
Types Time64
Query
Response

byteSwap

Introduit dans : v23.10.0 Inverse les octets d’un entier, c.-à-d. modifie son ordre des octets. L’exemple ci-dessous peut être décomposé comme suit :
  1. Convertissez l’entier en base 10 dans son équivalent au format hexadécimal en big-endian, c.-à-d. 3351772109 -> C7 C7 FB CD (4 octets)
  2. Inversez les octets, c.-à-d. C7 C7 FB CD -> CD FB C7 C7
  3. Reconvertissez le résultat en entier en supposant un format big-endian, c.-à-d. CD FB C7 C7 -> 3455829959 Un cas d’utilisation de cette fonction est l’inversion des adresses IPv4 :
Syntaxe
Arguments Valeur renvoyée Renvoie x avec l’ordre des octets inversé. (U)Int* Exemples Exemple d’utilisation
Query
Response
8 bits
Query
Response
16 bits
Query
Response
32 bits
Query
Response
64 bits
Query
Response

divide

Introduit dans : v1.1.0 Calcule le quotient de deux valeurs a et b. Le type de résultat est toujours Float64. La division entière est assurée par la fonction intDiv.
La division par 0 renvoie inf, -inf ou nan.
Syntaxe
Arguments
  • x — Dividende - y — Diviseur
Valeur renvoyée Le quotient de x par y Exemples Division de deux nombres
Query
Response
Division par zéro
Query
Response

divideDecimal

Introduit dans : v22.12.0 Effectue la division de deux valeurs décimales. La valeur résultante sera de type Decimal256. L’échelle du résultat peut être explicitement spécifiée à l’aide de l’argument result_scale (const Integer dans l’intervalle [0, 76]). Si elle n’est pas spécifiée, l’échelle du résultat correspond à l’échelle maximale des arguments fournis.
Cette fonction est nettement plus lente que divide. Si vous n’avez pas réellement besoin d’une précision contrôlée et/ou d’un calcul rapide, envisagez d’utiliser divide.
Syntaxe
Arguments
  • x — Première valeur : Decimal. - y — Deuxième valeur : Decimal. - result_scale — Échelle du résultat. Type Int/UInt.
Valeur renvoyée Le résultat de la division avec l’échelle indiquée. Decimal256 Exemples Exemple 1
Query
Response
Exemple 2
Query
Response

divideOrNull

Introduit dans : v25.5.0 Identique à divide, mais renvoie NULL en cas de division par zéro. Syntaxe
Arguments
  • x — Dividende - y — Diviseur
Valeur renvoyée Le quotient de x par y, ou NULL. Exemples Division par zéro
Query
Response

gcd

Introduit dans : v1.1.0 Renvoie le plus grand commun diviseur de deux valeurs, a et b. Une exception est levée en cas de division par zéro ou lorsqu’un plus petit nombre négatif est divisé par moins un. Syntaxe
Arguments
  • x — Premier entier - y — Deuxième entier
Valeur renvoyée Le plus grand diviseur commun de x et y. Exemples Exemple d’utilisation
Query
Response

ifNotFinite

Introduit dans : v20.3.0 Vérifie si une valeur en virgule flottante est finie. Vous pouvez obtenir un résultat similaire en utilisant l’opérateur ternaire : isFinite(x) ? x : y. Syntaxe
Arguments
  • x — Valeur dont il faut vérifier si elle est infinie. Float*
  • y — Valeur de repli. Float*
Valeur renvoyée
  • x si x est une valeur finie.
  • y si x n’est pas une valeur finie.
Exemples Exemple d’utilisation
Query
Response

intDiv

Introduit dans : v1.1.0 Effectue une division entière de x par y. En d’autres termes, cette fonction calcule le quotient arrondi à l’entier inférieur. Le résultat a la même largeur que le dividende (le premier paramètre). Une exception est levée en cas de division par zéro, lorsque le quotient ne tient pas dans la plage de valeurs du dividende, ou lors de la division du plus petit nombre négatif par moins un. Syntaxe
Arguments
  • x — Opérande de gauche. - y — Opérande de droite.
Valeur renvoyée Résultat de la division entière de x par y Exemples Division entière de deux nombres flottants
Query
Response
Le quotient n’est pas compris dans l’intervalle du dividende
Query
Response

intDivOrNull

Introduit dans : v25.5.0 Identique à intDiv, mais renvoie NULL en cas de division par zéro ou lors de la division du plus petit nombre négatif par moins un. Syntaxe
Arguments
  • x — Opérande de gauche. (U)Int*
  • y — Opérande de droite. (U)Int*
Valeur renvoyée Résultat de la division entière de x par y, ou NULL. Exemples Division entière par zéro
Query
Response
Division du nombre négatif minimal par -1
Query
Response

intDivOrZero

Introduit dans : v1.1.0 Identique à intDiv, mais renvoie zéro en cas de division par zéro ou lors de la division du plus petit nombre négatif par moins un. Syntaxe
Arguments
  • a — Opérande de gauche. (U)Int*
  • b — Opérande de droite. (U)Int*
Valeur renvoyée Résultat de la division entière de a par b, ou zéro. Exemples Division entière par zéro
Query
Response
Division du nombre négatif minimal par -1
Query
Response

isFinite

Introduit dans : v1.1.0 Renvoie 1 si l’argument Float32, Float64 ou BFloat16 n’est ni infini ni NaN, sinon cette fonction renvoie 0. Syntaxe
Arguments
  • x — Nombre dont il faut vérifier s’il est fini. Float* ou BFloat16
Valeur renvoyée 1 si x n’est ni infini ni NaN, sinon 0. Exemples Tester si un nombre est fini
Query
Response

isInfinite

Introduit dans : v1.1.0 Renvoie 1 si l’argument de type Float32, Float64 ou BFloat16 est infini ; sinon, cette fonction renvoie 0. Notez que 0 est également renvoyé pour un NaN. Syntaxe
Arguments
  • x — Nombre dont il faut vérifier s’il est infini. Float* ou BFloat16
Valeur renvoyée 1 si x est infini, sinon 0 (y compris pour NaN). Exemples Vérifier si un nombre est infini
Query
Response

isNaN

Introduit dans : v1.1.0 Renvoie 1 si l’argument de type Float32, Float64 ou BFloat16 est NaN, sinon 0. Syntaxe
Arguments
  • x — Argument à évaluer pour vérifier s’il est NaN. Float* ou BFloat16
Valeur renvoyée 1 si NaN, sinon 0 Exemples Exemple d’utilisation
Query
Response

kqlBin

Introduced in: v26.8.0 Arrondit une valeur à l’inférieur, vers un multiple de roundTo, comme le fait bin() en Kusto Query Language. La règle dépend des types des arguments : un nombre est arrondi arithmétiquement, une durée (qui est un Interval) est arrondie selon une durée, et une date-heure est arrondie selon une durée. Un date-heure KQL est un DateTime64 ; les porteurs plus étroits DateTime et Date sont rejetés, car ils ne peuvent pas représenter tous les bins qu’un date-heure KQL peut produire. Cette fonction sous-tend bin() lorsque dialect = 'kusto'. Elle n’est pas destinée à être appelée directement depuis SQL. Syntax
Arguments
  • value — Un nombre, une durée ou une date-heure (un DateTime64). - roundTo — La taille du bin.
Valeur renvoyée value arrondi à l’inférieur au multiple de roundTo le plus proche. Exemples number
Query
Response
durée
Query
Response
date-heure
Query
Response

kqlBinAt

Introduit dans : v26.8.0 Arrondit une valeur à l’inférieur, au multiple de binSize le plus proche compté à partir de fixedPoint, comme le fait la fonction bin_at() du Kusto Query Language. Les bins peuvent s’aligner avant ou après le point de référence. La règle dépend des types d’arguments : un nombre est arrondi arithmétiquement, une durée (qui est un Interval) est arrondie par une durée à partir d’une durée, et une date-heure est arrondie par une durée comptée à partir d’un point de référence de type date-heure. Une date-heure KQL est un DateTime64 ; les types porteurs plus restreints DateTime et Date sont rejetés, car ils ne peuvent pas représenter tous les bins qu’une date-heure KQL peut produire. Cette fonction implémente bin_at() lorsque dialect = 'kusto'. Elle n’est pas destinée à être appelée directement depuis SQL. Syntaxe
Arguments
  • value — Un nombre, une durée ou une date-heure (un DateTime64). - binSize — La taille du bin. - fixedPoint — Le point à partir duquel les bins sont comptés.
Valeur renvoyée value arrondi vers le bas au multiple de binSize le plus proche, compté à partir de fixedPoint. Exemples number
Query
Response
datetime
Query
Response

kqlDateTimeBinAt

Introduit dans : v26.8.0 Arrondit une valeur date-heure à l’inférieur, sur un multiple d’une durée calculé à partir d’un point de référence date-heure. Syntaxe
Arguments
  • value — La date-heure à arrondir. - binSize — La taille du bin de durée. - fixedPoint — Le point de référence de date-heure.
Valeur renvoyée La date-heure arrondie. Exemples

kqlDivide

Introduced in: v26.8.0 La division telle que la définit le Kusto Query Language : deux opérandes entiers donnent un entier, donc 7 / 2 vaut 3, tandis que deux opérandes de type durée (qui sont des valeurs Interval) donnent leur ratio réel, donc 15ms / 10ms vaut 1.5. Toute autre combinaison de types d’opérandes est divisée comme avec divide. Cette fonction sous-tend l’opérateur / lorsque dialect = 'kusto'. Elle n’est pas destinée à être appelée directement depuis SQL. Syntaxe
Arguments
  • x — Le dividende. - y — Le diviseur.
Valeur renvoyée intDiv(x, y) lorsque les deux arguments sont des integers, le rapport des ticks des intervalles lorsque les deux sont des intervalles, divide(x, y) dans les autres cas. Exemples integers
Query
Response
réels
Query
Response
durées
Query
Response

kqlMultiply

Introduced in: v26.8.0 La multiplication telle que définie par le Kusto Query Language : une durée (un Interval) est mise à l’échelle par un nombre placé de part et d’autre, si bien que 2 * 1h vaut deux heures. Deux arguments sans intervalle se multiplient comme avec multiply. Cette fonction sous-tend l’opérateur * lorsque dialect = 'kusto'. Elle n’est pas destinée à être appelée directement depuis SQL. Syntaxe
Arguments
  • x — Un nombre ou une durée. - y — Un nombre, ou une durée lorsque x est un nombre.
Valeur renvoyée Le produit ; un intervalle du même type si l’un des arguments en est un. Exemples durée
Query
Response
nombres
Query
Response

kqlRangeCount

Introduced in: v26.8.0 Le nombre de rows produites par la source range du Kusto Query Language : floor((to - from) / step) + 1, sans jamais être inférieur à zéro. Les limites et le step sont des nombres, ou des datetimes espacés d’une durée (un Interval), ou encore des durées ; les formes temporelles sont comptées en nanosecondes entières, ce qu’aucune division ClickHouse unique ne permet d’exprimer. Les integers et les decimals sont comptés de façon exacte, et non via Float64. Cette fonction sous-tend la source range lorsque dialect = 'kusto'. Elle n’est pas destinée à être appelée directement depuis SQL. Syntaxe
Arguments
  • from — La première valeur de la plage. - to — La valeur que la plage ne dépasse pas. - step — L’écart entre deux valeurs consécutives.
Valeur renvoyée Le nombre de valeurs dans la plage. Exemples numbers
Query
Response
datetimes
Query
Response

lcm

Introduit dans : v1.1.0 Renvoie le plus petit multiple commun de deux valeurs x et y. Une exception est levée en cas de division par zéro ou lors de la division du plus petit nombre négatif par moins un. Syntaxe
Arguments Valeur renvoyée Renvoie le plus petit commun multiple de x et y. (U)Int* Exemples Exemple d’utilisation
Query
Response

max2

Introduit dans : v21.11.0 Renvoie la plus grande des deux valeurs numériques x et y. Syntaxe
Arguments Valeur renvoyée Renvoie la plus grande des deux valeurs x et y. Float64 Exemples Exemple d’utilisation
Query
Response

midpoint

Introduit dans : v25.11.0 Calcule et renvoie la valeur moyenne des arguments fournis. Prend en charge les types numériques et temporels. Syntaxe
Arguments
  • x1[, x2, ...] — Accepte une valeur unique ou plusieurs valeurs pour en calculer la moyenne.
Valeur renvoyée Renvoie la valeur moyenne des arguments fournis, promue au plus grand type compatible. Exemples Types numériques
Query
Response
Types décimaux
Query
Response
Types Date
Query
Response
Types de DateTime
Query
Response
Types Time64
Query
Response

min2

Introduit dans : v21.11.0 Renvoie la plus petite de deux valeurs numériques x et y. Syntaxe
Arguments Valeur renvoyée Renvoie la plus petite des valeurs x et y. Float64 Exemples Exemple d’utilisation
Query
Response

minus

Introduit dans : v1.1.0 Calcule la différence entre deux valeurs a et b. Le résultat est toujours signé. Comme avec plus, il est possible de soustraire un integer à une date ou à une date avec heure. En outre, la soustraction entre des dates avec heure est prise en charge, ce qui produit la différence de temps entre elles. Il est également possible de soustraire un Time ou un Time64 d’un DateTime ou d’un DateTime64 ; la valeur temporelle est appliquée comme un décalage en secondes. DateTime moins Time produit un DateTime, tandis que toute combinaison impliquant DateTime64 ou Time64 produit un DateTime64 avec la scale maximale des deux arguments. Syntaxe
Arguments
  • x — Diminuende. - y — Soustrahende.
Valeur renvoyée x moins y Exemples Soustraction de deux nombres
Query
Response
Soustraction entre un integer et une date
Query
Response

modulo

Introduit dans : v1.1.0 Calcule le reste de la division de deux valeurs a par b. Le type du résultat est un entier si les deux entrées sont des entiers. Si l’une des entrées est un nombre à virgule flottante, le type du résultat est Float64. Le reste est calculé comme en C++. Une division tronquée est utilisée pour les nombres négatifs. Une exception est levée en cas de division par zéro ou lors de la division d’un nombre négatif minimal par moins un. Syntaxe
Alias : mod Arguments
  • a — Le dividende - b — Le diviseur (modulo)
Valeur renvoyée Le reste de a % b Exemples Exemple d’utilisation
Query
Response

moduloLegacy

Introduit dans : v1.1.0 Calcule le reste d’une division. Il s’agit de l’implémentation legacy du modulo qui utilise l’opérateur % de C++, ce qui peut produire des résultats négatifs lorsque les arguments sont négatifs. Cette fonction existe pour assurer la rétrocompatibilité avec l’ancienne logique de partitionnement des tables. Utilisez modulo ou positiveModulo pour obtenir le comportement standard. Syntaxe
Arguments Valeur renvoyée Renvoie le reste de la division. (U)Int* ou Float* Exemples Utilisation de base
Query
Response

moduloOrNull

Introduit dans : v25.5.0 Calcule le reste de la division de a par b. Comme la fonction modulo, sauf que moduloOrNull renvoie NULL lorsque l’opération lèverait sinon une exception en virgule flottante. Pour les arguments en virgule flottante, cela se produit uniquement lorsque le diviseur est 0 ; pour les arguments entiers, cela couvre également la valeur négative minimale modulo -1 (par ex. -128 % -1 pour Int8). Syntaxe
Alias : modOrNull Arguments Valeur renvoyée Renvoie le reste de la division de x par y, ou NULL lorsque l’opération entraînerait une exception en virgule flottante : lorsque le diviseur est égal à zéro, ou, pour des arguments entiers, lors du calcul de la valeur négative minimale modulo -1. Exemples moduloOrNull avec zéro
Query
Response
moduloOrNull de l’entier négatif minimal par -1
Query
Response

moduloOrZero

Introduit dans : v20.3.0 Comme modulo, mais renvoie zéro au lieu d’une exception pour les résultats integer lorsque l’opération lèverait sinon une exception. Pour les résultats à virgule flottante, un diviseur nul produit NaN. Syntaxe
Arguments Valeur renvoyée Renvoie le reste de a % b. Pour les résultats integer, renvoie 0 là où l’opération lèverait normalement une exception. Pour les résultats en virgule flottante, un diviseur nul produit NaN. Exemples Diviseur entier nul
Query
Response
Diviseur à virgule flottante nul
Query
Response

multiply

Introduit dans : v1.1.0 Calcule le produit des deux valeurs x et y. Syntaxe
Arguments Valeur de retour Renvoie le produit de x et y Exemples Multiplier deux nombres
Query
Response

multiplyDecimal

Introduit dans : v22.12.0 Effectue la multiplication de deux nombres décimaux. La valeur de résultat est de type Decimal256. La scale du résultat peut être spécifiée explicitement à l’aide de l’argument result_scale (constante entière dans l’intervalle [0, 76]). Si elle n’est pas spécifiée, la scale du résultat correspond à la scale maximale des arguments fournis.
Ces fonctions sont nettement plus lentes que multiply. Si vous n’avez pas réellement besoin d’une précision contrôlée et/ou d’un calcul rapide, envisagez d’utiliser multiply
Syntaxe
Arguments
  • a — Première valeur. Decimal
  • b — Deuxième valeur. Decimal
  • result_scale — Échelle du résultat. (U)Int*
Valeur renvoyée Résultat de la multiplication avec l’échelle indiquée. Type : Decimal256 Exemples Exemple d’utilisation
Query
Response
Différence avec la multiplication standard
Query
Response
Pas de dépassement de capacité avec multiplyDecimal
Query
Response
Dépassement de capacité du type Decimal avec la multiplication standard
Query
Response

negate

Introduit dans : v1.1.0 Retourne l’opposé de l’argument x. Le résultat est toujours de type signé. Syntaxe
Arguments
  • x — La valeur à opposer.
Valeur renvoyée Renvoie -x pour x Exemples Exemple d’utilisation
Query
Response

plus

Introduit dans : v1.1.0 Calcule la somme de deux valeurs x et y. Alias : x + y (opérateur). Il est possible d’additionner un entier et une date ou une date avec heure. La première opération incrémente le nombre de jours de la date, la seconde incrémente le nombre de secondes de la date avec heure. Il est également possible d’additionner une date et une heure. L’addition d’un Date et d’un Time produit un DateTime. L’addition d’un Date et d’un Time64, ou d’un Date32 et d’un Time ou Time64, produit un DateTime64. L’ajout d’un Time ou d’un Time64 à un DateTime ou un DateTime64 applique la valeur d’heure comme un décalage en secondes. DateTime plus Time produit un DateTime, et toute combinaison impliquant DateTime64 ou Time64 produit un DateTime64 avec la scale maximale des deux arguments. Syntaxe
Arguments
  • x — Opérande de gauche. - y — Opérande de droite.
Valeur renvoyée Renvoie la somme de x et y Exemples Addition de deux nombres
Query
Response
Addition d’un entier et d’une Date
Query
Response
Ajouter une date et une heure
Query
Response

positiveModulo

Introduit dans : v22.11.0 Calcule le reste de la division de x par y. Comme la fonction modulo, à ceci près que positiveModulo renvoie toujours un nombre non négatif. Syntaxe
Alias : positive_modulo, pmod Arguments Valeur renvoyée Renvoie la différence entre x et le plus grand entier inférieur ou égal à x divisible par y. Exemples Exemple d’utilisation
Query
Response

positiveModuloOrNull

Introduit dans : v25.5.0 Calcule le reste de la division de a par b. Similaire à la fonction positiveModulo, à ceci près que positiveModuloOrNull renvoie NULL lorsque l’opération provoquerait autrement une exception en virgule flottante. Pour les arguments à virgule flottante, cela se produit uniquement lorsque le diviseur est 0 ; pour les arguments entiers, cela couvre également la valeur négative minimale modulo -1 (par exemple -128 % -1 pour Int8). Syntaxe
Alias : positive_modulo_or_null, pmodOrNull Arguments Valeur renvoyée Renvoie la différence entre x et le plus grand entier inférieur ou égal à x divisible par y, ou NULL lorsque l’opération lèverait une exception en virgule flottante : lorsque le diviseur est égal à zéro ou, pour les arguments entiers, lors du calcul de la valeur négative minimale modulo -1. Exemples positiveModuloOrNull par zéro
Query
Response
positiveModuloOrNull du plus petit entier négatif par -1
Query
Response

sqr

Introduit dans : v26.7.0 Calcule le carré d’une valeur x. Syntaxe
Arguments Valeur renvoyée Renvoie le produit de x par lui-même. Exemples Mise au carré d’un nombre
Query
Response
Dernière modification le 26 septembre 2026