AnalyticDB for MySQL prend en charge les fonctions numériques suivantes pour les opérations arithmétiques, d'arrondi, trigonométriques, logarithmiques et autres calculs mathématiques sur des données numériques.
Index des fonctions
| Catégorie | Fonction | Description |
|---|---|---|
| Arithmétique | ABS | Renvoie la valeur absolue |
| SIGN | Renvoie le signe d'un nombre | |
| SQRT | Renvoie la racine carrée | |
| EXP | Renvoie e élevé à la puissance x | |
| POWER / POW | Renvoie x élevé à la puissance y | |
| CRC32 | Renvoie la valeur de contrôle de redondance cyclique (CRC) | |
| Arrondi | CEILING / CEIL | Arrondit à l'entier supérieur le plus proche |
| FLOOR | Arrondit à l'entier inférieur le plus proche | |
| ROUND | Arrondit à un nombre spécifié de décimales | |
| Trigonométrie | SIN | Renvoie le sinus |
| COS | Renvoie le cosinus | |
| TAN | Renvoie la tangente | |
| COT | Renvoie la cotangente | |
| ASIN | Renvoie l'arc sinus | |
| ACOS | Renvoie l'arc cosinus | |
| ATAN | Renvoie l'arc tangente | |
| ATAN2 | Renvoie l'arc tangente de x/y | |
| DEGREES | Convertit les radians en degrés | |
| RADIANS | Convertit les degrés en radians | |
| PI | Renvoie la valeur de pi | |
| Logarithme | LN | Renvoie le logarithme naturel |
| LOG | Renvoie le logarithme naturel ou le logarithme dans une base spécifiée | |
| LOG2 | Renvoie le logarithme en base 2 | |
| LOG10 | Renvoie le logarithme en base 10 | |
| Aléatoire | RAND | Renvoie un nombre à virgule flottante aléatoire |
ABS
abs(expr)
Renvoie la valeur absolue de expr.
Arguments
expr: expression numérique. Types acceptés : TINYINT, SMALLINT, INT, BIGINT, DOUBLE, FLOAT ou DECIMAL.
Type de retour
| Type d'entrée | Type de retour |
|---|---|
| TINYINT, SMALLINT, INT, BIGINT | BIGINT |
| DOUBLE, FLOAT | DOUBLE |
| DECIMAL | DECIMAL |
Exemples
SELECT abs(4.5);
+----------+
| abs(4.5) |
+----------+
| 4.5 |
+----------+
SELECT abs(-4);
+--------+
| abs(4) |
+--------+
| 4 |
+--------+
ACOS
acos(expr)
Renvoie l'arc cosinus de expr, en radians.
Arguments
expr: valeur DOUBLE. Doit être comprise dans l'intervalle [-1, 1].
Type de retour : DOUBLE.
Notes d'utilisation
Si
exprest supérieur à 1 ou inférieur à -1, la fonction renvoie NULL.
Exemple
SELECT acos(0.5);
+--------------------+
| acos(0.5) |
+--------------------+
| 1.0471975511965979 |
+--------------------+
ASIN
asin(expr)
Renvoie l'arc sinus de expr, en radians.
Arguments
expr: valeur DOUBLE. Doit être comprise dans l'intervalle [-1, 1].
Type de retour : DOUBLE.
Notes d'utilisation
Si
exprest supérieur à 1 ou inférieur à -1, la fonction renvoie NULL.
Exemple
SELECT asin(0.5);
+--------------------+
| asin(0.5) |
+--------------------+
| 0.5235987755982989 |
+--------------------+
ATAN
atan(expr)
Renvoie l'arc tangente de expr, en radians.
Arguments
expr: valeur DOUBLE.
Type de retour : DOUBLE.
Exemple
SELECT atan(0.5);
+--------------------+
| atan(0.5) |
+--------------------+
| 0.4636476090008061 |
+--------------------+
ATAN2
atan2(x, y)
Renvoie l'arc tangente de x divisé par y, en radians.
Arguments
x: valeur DOUBLE (numérateur).y: valeur DOUBLE (dénominateur).
Type de retour : DOUBLE.
Exemple
SELECT atan2(0.5, 0.3);
+--------------------+
| atan2(0.5,0.3) |
+--------------------+
| 1.0303768265243125 |
+--------------------+
CEILING ou CEIL
ceiling(expr)
ceil(expr)
Renvoie expr arrondi à l'entier supérieur le plus proche.
Arguments
expr: expression numérique. Types acceptés : TINYINT, SMALLINT, INT, BIGINT, DOUBLE, FLOAT ou DECIMAL.
Type de retour
| Type d'entrée | Type de retour |
|---|---|
| TINYINT, SMALLINT, INT, BIGINT | BIGINT |
| DOUBLE, FLOAT | DOUBLE |
| DECIMAL | DECIMAL |
Exemples
SELECT ceiling(4);
+------------+
| ceiling(4) |
+------------+
| 4 |
+------------+
SELECT ceil(-4.5);
+------------+
| ceil(-4.5) |
+------------+
| -4 |
+------------+
COS
cos(expr)
Renvoie le cosinus de expr, où expr est exprimé en radians.
Arguments
expr: valeur DOUBLE (angle en radians).
Type de retour : DOUBLE.
Exemple
SELECT cos(1.3);
+---------------------+
| cos(1.3) |
+---------------------+
| 0.26749882862458735 |
+---------------------+
COT
cot(expr)
Renvoie la cotangente de expr, où expr est exprimé en radians.
Arguments
expr: valeur DOUBLE (angle en radians).
Type de retour : DOUBLE.
Exemple
SELECT cot(1.234);
+---------------------+
| cot(1.234) |
+---------------------+
| 0.35013639786701445 |
+---------------------+
CRC32
crc32(expr)
Renvoie la valeur de contrôle de redondance cyclique (CRC) de expr.
Arguments
expr: valeur VARBINARY.
Type de retour : BIGINT.
Exemple
SELECT crc32('China');
+-----------------+
| crc32('China') |
+-----------------+
| 737014929 |
+-----------------+
DEGREES
degrees(expr)
Convertit expr de radians en degrés.
Arguments
expr: valeur DOUBLE (angle en radians).
Type de retour : DOUBLE.
Exemple
SELECT degrees(1.3);
+-------------------+
| degrees(1.3) |
+-------------------+
| 74.48451336700703 |
+-------------------+
EXP
exp(expr)
Renvoie e (la base du logarithme naturel) élevé à la puissance de expr.
Arguments
expr: valeur DOUBLE (exposant).
Type de retour : DOUBLE.
Exemple
SELECT exp(4.5);
+-------------------+
| exp(4.5) |
+-------------------+
| 90.01713130052181 |
+-------------------+
FLOOR
floor(expr)
Renvoie expr arrondi à l'entier inférieur le plus proche.
Arguments
expr: expression numérique. Types acceptés : TINYINT, SMALLINT, INT, BIGINT, DOUBLE, FLOAT ou DECIMAL.
Type de retour
| Type d'entrée | Type de retour |
|---|---|
| TINYINT, SMALLINT, INT, BIGINT | BIGINT |
| DOUBLE, FLOAT | DOUBLE |
| DECIMAL | DECIMAL |
Notes d'utilisation
AnalyticDB for MySQL convertit les littéraux numériques tels que
0.8en DECIMAL. Le type de retour correspond au type d'entrée :floor(0.8)renvoie un DECIMAL0, et non un entier0.Les expressions de division comme
4/5sont évaluées comme DOUBLE, doncfloor(4/5)renvoie0.0(DOUBLE). Pour obtenir un résultat entier, encapsulez la sortie dans une fonction CAST.
Exemples
SELECT floor(7);
+----------+
| floor(7) |
+----------+
| 7 |
+----------+
floor(0.8) — l'entrée 0.8 est traitée comme DECIMAL, le type de retour est donc DECIMAL :
SELECT floor(0.8);
+-------------+
| floor(0.8) |
+-------------+
| 0 |
+-------------+
floor(4/5) — l'expression 4/5 est évaluée comme DOUBLE, le type de retour est donc DOUBLE :
SELECT floor(4/5);
+-------------+
| floor(4/5) |
+-------------+
| 0.0 |
+-------------+
LN
ln(expr)
Renvoie le logarithme naturel de expr.
Arguments
expr: valeur DOUBLE.
Type de retour : DOUBLE.
Exemple
SELECT ln(2.718281828459045);
+-----------------------+
| ln(2.718281828459045) |
+-----------------------+
| 1.0 |
+-----------------------+
LOG
log(expr)
log(base, expr)
Renvoie le logarithme de expr. Avec un seul argument, la fonction renvoie le logarithme naturel. Avec deux arguments, elle renvoie le logarithme de expr dans la base spécifiée.
Arguments
expr: valeur DOUBLE (expression d'entrée).base(facultatif) : valeur DOUBLE (base du logarithme).
Type de retour : DOUBLE.
Exemples
Logarithme naturel de 16 :
SELECT log(16);
+-------------------+
| log(16) |
+-------------------+
| 2.772588722239781 |
+-------------------+
Logarithme de 100 en base 10 :
SELECT log(10, 100);
+-------------+
| log(10,100) |
+-------------+
| 2.0 |
+-------------+
LOG2
log2(expr)
Renvoie le logarithme en base 2 de expr.
Arguments
expr: valeur DOUBLE.
Type de retour : DOUBLE.
Exemple
SELECT log2(8.7654);
+-------------------+
| log2(8.7654) |
+-------------------+
| 3.131819928389146 |
+-------------------+
LOG10
log10(expr)
Renvoie le logarithme en base 10 de expr.
Arguments
expr: valeur DOUBLE.
Type de retour : DOUBLE.
Exemple
SELECT log10(100.876);
+--------------------+
| log10(100.876) |
+--------------------+
| 2.0037878529824615 |
+--------------------+
PI
pi()
Renvoie la valeur de pi (le rapport entre la circonférence d'un cercle et son diamètre).
Type de retour : DOUBLE.
Exemple
SELECT pi();
+-------------------+
| pi() |
+-------------------+
| 3.141592653589793 |
+-------------------+
POWER ou POW
power(x, y)
pow(x, y)
Renvoie x élevé à la puissance de y.
Arguments
x: valeur DOUBLE (base).y: valeur DOUBLE (exposant).
Type de retour : DOUBLE.
Exemples
SELECT power(1.2, 3.4);
+-------------------+
| power(1.2,3.4) |
+-------------------+
| 1.858729691979481 |
+-------------------+
SELECT pow(-2, -3);
+------------+
| pow(-2,-3) |
+------------+
| -0.125 |
+------------+
RADIANS
radians(expr)
Convertit expr de degrés en radians.
Arguments
expr: valeur DOUBLE (angle en degrés).
Type de retour : DOUBLE.
Exemple
SELECT radians(60.0);
+--------------------+
| radians(60.0) |
+--------------------+
| 1.0471975511965976 |
+--------------------+
RAND
rand()
rand() * (y - x) + x
Renvoie un nombre à virgule flottante aléatoire. La fonction rand() renvoie une valeur dans l'intervalle [0, 1). Pour obtenir un nombre aléatoire dans une plage personnalisée [x, y), utilisez rand() * (y - x) + x.
Type de retour : DOUBLE.
Notes d'utilisation
La fonction
rand()ne prend aucun argument.Le résultat est uniformément distribué : supérieur ou égal à
xet strictement inférieur ày.
Exemples
Nombre aléatoire dans l'intervalle [0, 1) :
SELECT rand();
+--------------------+
| rand() |
+--------------------+
| 0.6613712594764614 |
+--------------------+
Nombre aléatoire dans l'intervalle [3, 12) :
SELECT rand() * (12 - 3) + 3;
+-------------------+
| rand()*(12-3)+3 |
+-------------------+
| 9.073329270781976 |
+-------------------+
ROUND
round(expr [, scale])
Renvoie expr arrondi à scale décimales. La valeur par défaut de scale est 0. Le type de retour correspond au type d'entrée.
Arguments
expr: expression numérique à arrondir. Types acceptés : TINYINT, SMALLINT, INT, BIGINT, DOUBLE, FLOAT ou DECIMAL.scale(facultatif) : entier spécifiant le nombre de décimales. La valeur par défaut est 0.
Type de retour
| Type d'entrée | Type de retour |
|---|---|
| TINYINT, SMALLINT, INT, BIGINT | BIGINT |
| DOUBLE, FLOAT | DOUBLE |
| DECIMAL | DECIMAL |
Notes d'utilisation
Si
exprest NULL, la fonction renvoie NULL.Si
scaleest supérieur à 0, le résultat est arrondi à ce nombre de décimales.Si
scaleest égal à 0, le résultat est arrondi à l'entier le plus proche.Si
scaleest inférieur à 0, le résultat est arrondi à ce nombre de positions à gauche de la virgule. Par exemple,scale = -1arrondit à la dizaine la plus proche.
Exemples
Arrondi à l'entier le plus proche (scale = 0) :
SELECT round(345.983, 0);
+------------------+
| round(345.983,0) |
+------------------+
| 346.000 |
+------------------+
Arrondi à une décimale (scale = 1) :
SELECT round(345.123, 1);
+------------------+
| round(345.123,1) |
+------------------+
| 345.100 |
+------------------+
Arrondi à une position à gauche de la virgule (scale = -1) :
SELECT round(344.984, -1);
+-------------------+
| round(344.984,-1) |
+-------------------+
| 340.000 |
+-------------------+
Arrondi à quatre positions à gauche de la virgule (scale = -4) :
SELECT round(345.984, -4);
+-------------------+
| round(345.984,-4) |
+-------------------+
| 0.000 |
+-------------------+
SIGN
sign(expr)
Renvoie le signe de expr sous forme d'entier : 1 pour les valeurs positives, 0 pour zéro et -1 pour les valeurs négatives.
Arguments
expr: expression numérique. Types acceptés : TINYINT, SMALLINT, INT, BIGINT, DOUBLE, FLOAT ou DECIMAL.
Type de retour : BIGINT.
Exemples
SELECT sign(12);
+----------+
| sign(12) |
+----------+
| 1 |
+----------+
SELECT sign(-4.5);
+------------+
| sign(-4.5) |
+------------+
| -1 |
+------------+
SIN
sin(expr)
Renvoie le sinus de expr, où expr est exprimé en radians.
Arguments
expr: valeur DOUBLE (angle en radians).
Type de retour : DOUBLE.
Exemple
SELECT sin(1.234);
+--------------------+
| sin(1.234) |
+--------------------+
| 0.9438182093746337 |
+--------------------+
SQRT
sqrt(expr)
Renvoie la racine carrée de expr.
Arguments
expr: valeur DOUBLE.
Type de retour : DOUBLE.
Exemple
SELECT sqrt(4.222);
+-------------------+
| sqrt(4.222) |
+-------------------+
| 2.054750593137766 |
+-------------------+
TAN
tan(expr)
Renvoie la tangente de expr, où expr est exprimé en radians.
Arguments
expr: valeur DOUBLE (angle en radians).
Type de retour : DOUBLE.
Exemple
SELECT tan(8);
+--------------------+
| tan(8) |
+--------------------+
| -6.799711455220379 |
+--------------------+