Passer au contenu principal

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 nombre négatif minimal 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

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 entier à 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. Syntaxe
Arguments
  • x — Diminuende. - y — Soustrahende.
Valeur renvoyée x moins y Exemples Soustraction de deux nombres
Query
Response
Soustraction entre un entier 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 si l’argument de droite est 0. Syntaxe
Alias : modOrNull Arguments Valeur renvoyée Renvoie le reste de la division de x par y, ou NULL si le diviseur est égal à zéro. Exemples moduloOrNull avec zéro
Query
Response

moduloOrZero

Introduit dans : v20.3.0 Comme modulo, mais renvoie zéro lorsque le diviseur vaut zéro, au lieu de lever une exception avec la fonction modulo. Syntaxe
Arguments Valeur renvoyée Renvoie le reste de a % b, ou 0 lorsque le diviseur est 0. Exemples Exemple d’utilisation
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
Dépassement de capacité du type Decimal
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. 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 si l’argument de droite est 0. 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, null si le diviseur est égal à zéro. Exemples positiveModuloOrNull
Query
Response
Dernière modification le 25 juin 2026