ceil
Introduit dans : v1.1.0
Comme floor, mais renvoie le plus petit nombre arrondi qui est supérieur ou égal à x.
Si l'arrondi provoque un dépassement de capacité (par exemple, ceiling(255, -1)), le résultat est indéfini.
Syntaxe
ceiling(x[, N])Alias : ceiling
Arguments
x— La valeur à arrondir.Float*ouDecimal*ou(U)Int*N— Facultatif. Le nombre de décimales auquel arrondir. La valeur par défaut est zéro, ce qui correspond à un arrondi à l’entier. Peut être négatif.(U)Int*
Valeur renvoyée
Renvoie un nombre arrondi du même type que x. Float* ou Decimal* ou (U)Int*
Exemples
Utilisation de base
SELECT ceiling(123.45, 1) AS rounded┌─rounded─┐
│ 123.5 │
└─────────┘Précision négative
SELECT ceiling(123.45, -1)┌─ceiling(123.45, -1)─┐
│ 130 │
└─────────────────────┘floor
Introduit dans : v1.1.0
Renvoie le plus grand nombre arrondi inférieur ou égal à x, où ce nombre arrondi est un multiple de 1 / 10 * N, ou le nombre le plus proche du type de données approprié si 1 / 10 * N n’est pas exact.
Les arguments entiers peuvent être arrondis avec un argument N négatif.
Avec un N non négatif, la fonction renvoie x.
Si l’arrondi provoque un dépassement de capacité (par exemple, floor(-128, -1)), le résultat est indéfini.
Syntaxe
floor(x[, N])Arguments
x— La valeur à arrondir.Float*ouDecimal*ou(U)Int*N— Facultatif. Le nombre de décimales auquel arrondir. La valeur par défaut est zéro, ce qui signifie un arrondi à l'entier. Peut être négatif.(U)Int*
Valeur renvoyée
Renvoie un nombre arrondi du même type que x. Float* ou Decimal* ou (U)Int*
Exemples
Exemple d'utilisation
SELECT floor(123.45, 1) AS rounded┌─rounded─┐
│ 123.4 │
└─────────┘Précision négative
SELECT floor(123.45, -1)┌─floor(123.45, -1)─┐
│ 120 │
└───────────────────┘round
Introduit dans : v1.1.0
Arrondit une valeur à un nombre donné de décimales N.
- Si
N > 0, la fonction arrondit à droite de la virgule. - Si
N < 0, la fonction arrondit à gauche de la virgule. - Si
N = 0, la fonction arrondit à l’entier le plus proche.
La fonction renvoie le nombre le plus proche à l’ordre spécifié.
Si la valeur d’entrée est à égale distance de deux nombres voisins, la fonction utilise l’arrondi bancaire pour les entrées Float* et arrondit en s’éloignant de zéro pour les autres types numériques (Decimal*).
Si l’arrondi provoque un dépassement de capacité (par exemple, round(255, -1)), le résultat est indéfini.
Syntaxe
round(x[, N])Arguments
x— Un nombre à arrondir.Float*ouDecimal*ou(U)Int*N— Facultatif. Le nombre de décimales auquel arrondir. La valeur par défaut est0.(U)Int*
Valeur renvoyée
Renvoie un nombre arrondi du même type que x. Float* ou Decimal* ou (U)Int*
Exemples
Entrées de type Float
SELECT number / 2 AS x, round(x) FROM system.numbers LIMIT 3;┌───x─┬─round(x)─┐
│ 0 │ 0 │
│ 0.5 │ 0 │
│ 1 │ 1 │
└─────┴──────────┘Entrées de type Decimal
SELECT cast(number / 2 AS Decimal(10,4)) AS x, round(x) FROM system.numbers LIMIT 3;┌───x─┬─round(x)─┐
│ 0 │ 0 │
│ 0.5 │ 1 │
│ 1 │ 1 │
└─────┴──────────┘roundAge
Introduit dans : v1.1.0
Prend un nombre représentant l’âge d’une personne, le compare aux tranches d’âge standard et renvoie soit la valeur la plus élevée, soit la valeur la plus basse de la tranche dans laquelle il se situe.
- Renvoie
0, pourage < 1. - Renvoie
17, pour1 ≤ age ≤ 17. - Renvoie
18, pour18 ≤ age ≤ 24. - Renvoie
25, pour25 ≤ age ≤ 34. - Renvoie
35, pour35 ≤ age ≤ 44. - Renvoie
45, pour45 ≤ age ≤ 54. - Renvoie
55, pourage ≥ 55.
Syntaxe
roundAge(num)Arguments
Valeur renvoyée
Renvoie l'âge le plus élevé ou le plus bas de la plage dans laquelle se situe age. UInt8
Exemples
Exemple d'utilisation
SELECT *, roundAge(*) FROM system.numbers WHERE number IN (0, 5, 20, 31, 37, 54, 72);┌─number─┬─roundAge(number)─┐
│ 0 │ 0 │
│ 5 │ 17 │
│ 20 │ 18 │
│ 31 │ 25 │
│ 37 │ 35 │
│ 54 │ 45 │
│ 72 │ 55 │
└────────┴──────────────────┘roundBankers
Introduit dans : v20.1.0
Arrondit un nombre à la position décimale spécifiée N.
Si le nombre à arrondir se trouve exactement à mi-chemin entre deux nombres, la fonction utilise une méthode d’arrondi appelée arrondi bancaire, qui est la méthode d’arrondi par défaut des nombres à virgule flottante selon la norme IEEE 754.
- Si
N > 0, la fonction arrondit à droite de la virgule - Si
N < 0, la fonction arrondit à gauche de la virgule - Si
N = 0, la fonction arrondit à l’entier le plus proche
Syntaxe
roundBankers(x[, N])Arguments
x— Nombre à arrondir.(U)Int*ouDecimal*ouFloat*[, N]— Facultatif. Le nombre de décimales auquel arrondir. La valeur par défaut est0.(U)Int*
Valeur renvoyée
Renvoie une valeur arrondie selon la méthode de l'arrondi bancaire. (U)Int* ou Decimal* ou Float*
Exemples
Utilisation de base
SELECT number / 2 AS x, roundBankers(x, 0) AS b FROM system.numbers LIMIT 10┌───x─┬─b─┐
│ 0 │ 0 │
│ 0.5 │ 0 │
│ 1 │ 1 │
│ 1.5 │ 2 │
│ 2 │ 2 │
│ 2.5 │ 2 │
│ 3 │ 3 │
│ 3.5 │ 4 │
│ 4 │ 4 │
│ 4.5 │ 4 │
└─────┴───┘roundDown
Introduit dans : v20.1.0
Arrondit un nombre vers le bas à un élément du tableau spécifié. Si la valeur est inférieure à la borne minimale, cette dernière est renvoyée.
Syntaxe
roundDown(num, arr)Arguments
num— Nombre à arrondir à l'inférieur.(U)Int*ouDecimal*ouFloat*arr— Tableau des éléments auxquels arrondirnumà l'inférieur.Array((U)Int*)ouArray(Float*)
Valeur renvoyée
Renvoie un nombre arrondi à l'inférieur à une valeur de arr. Si la valeur est inférieure à la borne la plus basse, cette borne est renvoyée. (U)Int* ou Float*
Exemples
Exemple d'utilisation
SELECT *, roundDown(*, [3, 4, 5]) FROM system.numbers WHERE number IN (0, 1, 2, 3, 4, 5)┌─number─┬─roundDown(number, [3, 4, 5])─┐
│ 0 │ 3 │
│ 1 │ 3 │
│ 2 │ 3 │
│ 3 │ 3 │
│ 4 │ 4 │
│ 5 │ 5 │
└────────┴──────────────────────────────┘roundDuration
Introduit dans : v1.1.0
Arrondit un nombre à la durée couramment utilisée inférieure la plus proche parmi les valeurs suivantes : 1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000.
Si le nombre est inférieur à un, la fonction renvoie 0.
Syntaxe
roundDuration(num)Arguments
num— Un nombre à arrondir à l’une des valeurs de l’ensemble des durées courantes.(U)Int*ouFloat*
Valeur renvoyée
Renvoie 0 pour num < 1. Sinon, l’une des valeurs suivantes : 1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000. UInt16
Exemples
Exemple d’utilisation
SELECT *, roundDuration(*) FROM system.numbers WHERE number IN (0, 9, 19, 47, 101, 149, 205, 271, 421, 789, 1423, 2345, 4567, 9876, 24680, 42573)┌─number─┬─roundDuration(number)─┐
│ 0 │ 0 │
│ 9 │ 1 │
│ 19 │ 10 │
│ 47 │ 30 │
│ 101 │ 60 │
│ 149 │ 120 │
│ 205 │ 180 │
│ 271 │ 240 │
│ 421 │ 300 │
│ 789 │ 600 │
│ 1423 │ 1200 │
│ 2345 │ 1800 │
│ 4567 │ 3600 │
│ 9876 │ 7200 │
│ 24680 │ 18000 │
│ 42573 │ 36000 │
└────────┴───────────────────────┘roundToExp2
Introduit dans : v1.1.0
Arrondit un nombre à la puissance de deux entière non négative inférieure la plus proche.
Si le nombre est inférieur à un, la fonction renvoie 0.
Syntaxe
roundToExp2(num)Arguments
Valeur renvoyée
Renvoyer num arrondi à la plus grande puissance de deux (entière non négative) inférieure ou égale à num, sinon 0 si num < 1. (U)Int* ou Float*
Exemples
Exemple d'utilisation
SELECT *, roundToExp2(*) FROM system.numbers WHERE number IN (0, 2, 5, 10, 19, 50)┌─number─┬─roundToExp2(number)─┐
│ 0 │ 0 │
│ 2 │ 2 │
│ 5 │ 4 │
│ 10 │ 8 │
│ 19 │ 16 │
│ 50 │ 32 │
└────────┴─────────────────────┘trunc
Introduit dans : v1.1.0
Comme floor, mais renvoie le nombre arrondi dont la valeur absolue est la plus grande tout en restant inférieure ou égale à celle de x.
Syntaxe
truncate(x[, N])Alias : truncate
Arguments
x— La valeur à arrondir.Float*ouDecimal*ou(U)Int*N— Facultatif. Le nombre de décimales auquel arrondir. La valeur par défaut est zéro, ce qui correspond à un arrondi à l’entier.(U)Int*
Valeur renvoyée
Renvoie un nombre arrondi du même type que x. Float* ou Decimal* ou (U)Int*
Exemples
Utilisation de base
SELECT truncate(123.499, 1) AS res;┌───res─┐
│ 123.4 │
└───────┘