Математические функции
Все математические и тригонометрические функции требуют числового входного значения (где это применимо).
Общие
ABS
Синопсис:
ABS(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: числовое
Описание: Возвращает абсолютное значение numeric_exp. Тип возвращаемого значения совпадает с типом входного значения.
SELECT ABS(-123.5), ABS(55); ABS(-123.5) | ABS(55) ---------------+--------------- 123.5 |55
CBRT
Синопсис:
CBRT(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает кубический корень из numeric_exp.
SELECT CBRT(-125.5); CBRT(-125.5) ------------------- -5.0066577974783435
CEIL/CEILING
Синопсис:
CEIL(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: целое или длинное числовое значение
Описание: Возвращает наименьшее целое число, большее или равное numeric_exp.
SELECT CEIL(125.01), CEILING(-125.99); CEIL(125.01) |CEILING(-125.99) ---------------+---------------- 126 |-125
E
Синопсис:
E()
Входные данные: нет
Выходные данные: 2.718281828459045
Описание: Возвращает число Эйлера.
SELECT E(), CEIL(E());
E() | CEIL(E())
-----------------+---------------
2.718281828459045|3 EXP
Синопсис:
EXP(numeric_exp)
Входные данные:
| вещественное числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает число Эйлера в степени numeric_exp enumeric_exp.
SELECT EXP(1), E(), EXP(2), E() * E();
EXP(1) | E() | EXP(2) | E() * E()
-----------------+-----------------+----------------+------------------
2.718281828459045|2.718281828459045|7.38905609893065|7.3890560989306495 EXPM1
Синопсис:
EXPM1(numeric_exp)
Входные данные:
| вещественное числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает число Эйлера в степени numeric_exp минус 1 (enumeric_exp - 1).
SELECT E(), EXP(2), EXPM1(2);
E() | EXP(2) | EXPM1(2)
-----------------+----------------+----------------
2.718281828459045|7.38905609893065|6.38905609893065 FLOOR
Синопсис:
FLOOR(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: целое или длинное числовое значение
Описание: Возвращает наибольшее целое число, меньшее или равное numeric_exp.
SELECT FLOOR(125.01), FLOOR(-125.99); FLOOR(125.01) |FLOOR(-125.99) ---------------+--------------- 125 |-126
LOG
Синопсис:
LOG(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает натуральный логарифм numeric_exp.
SELECT EXP(3), LOG(20.085536923187668);
EXP(3) |LOG(20.085536923187668)
------------------+-----------------------
20.085536923187668|3.0 LOG10
Синопсис:
LOG10(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает десятичный логарифм numeric_exp.
SELECT LOG10(5), LOG(5)/LOG(10);
LOG10(5) | LOG(5)/LOG(10)
------------------+-----------------------
0.6989700043360189|0.6989700043360187 PI
Синопсис:
PI()
Входные данные: нет
Выходные данные: 3.141592653589793
Описание: Возвращает число π.
SELECT PI();
PI()
-----------------
3.141592653589793 POWER
Синопсис:
POWER(
numeric_exp,
integer_exp) Входные данные:
| числовое выражение. Если | |
| целочисленное выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает значение numeric_exp в степени integer_exp.
SELECT POWER(3, 2), POWER(3, 3); POWER(3, 2) | POWER(3, 3) ---------------+--------------- 9.0 |27.0
SELECT POWER(5, -1), POWER(5, -2); POWER(5, -1) | POWER(5, -2) ---------------+--------------- 0.2 |0.04
RANDOM/RAND
Синопсис:
RANDOM(seed)
Входные данные:
| числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает случайное вещественное число с заданным начальным значением.
SELECT RANDOM(123); RANDOM(123) ------------------ 0.7231742029971469
ROUND
Синопсис:
ROUND(
numeric_exp
[, integer_exp]) Входные данные:
| числовое выражение. Если | |
| целочисленное выражение; необязательно. Если |
Выходные данные: числовое
Описание: Возвращает numeric_exp, округлённое до integer_exp знаков после запятой. Если integer_exp отрицательно, numeric_exp округляется до |integer_exp| знаков слева от запятой. Если integer_exp опущено, функция выполняется так, как будто integer_exp равно 0. Возвращаемый числовой тип данных совпадает с типом данных numeric_exp.
SELECT ROUND(-345.153, 1) AS rounded;
rounded
---------------
-345.2 SELECT ROUND(-345.153, -1) AS rounded;
rounded
---------------
-350.0 SIGN/SIGNUM
Синопсис:
SIGN(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: [-1, 0, 1]
Описание: Возвращает индикатор знака numeric_exp. Если numeric_exp меньше нуля, возвращается –1. Если numeric_exp равно нулю, возвращается 0. Если numeric_exp больше нуля, возвращается 1.
SELECT SIGN(-123), SIGN(0), SIGN(415); SIGN(-123) | SIGN(0) | SIGN(415) ---------------+---------------+--------------- -1 |0 |1
SQRT
Синопсис:
SQRT(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает квадратный корень из numeric_exp.
SELECT SQRT(EXP(2)), E(), SQRT(25); SQRT(EXP(2)) | E() | SQRT(25) -----------------+-----------------+--------------- 2.718281828459045|2.718281828459045|5.0
TRUNCATE/TRUNC
Синопсис:
TRUNCATE(
numeric_exp
[, integer_exp]) Входные данные:
| числовое выражение. Если | |
| целочисленное выражение; необязательно. Если |
Выходные данные: числовое
Описание: Возвращает numeric_exp, усечённое до integer_exp знаков после запятой. Если integer_exp отрицательно, numeric_exp усекается до |integer_exp| знаков слева от запятой. Если integer_exp опущено, функция выполняется так, как будто integer_exp равно 0. Возвращаемый числовой тип данных совпадает с типом данных numeric_exp.
SELECT TRUNC(-345.153, 1) AS trimmed;
trimmed
---------------
-345.1 SELECT TRUNCATE(-345.153, -1) AS trimmed;
trimmed
---------------
-340.0 Тригонометрические
ACOS
Синопсис:
ACOS(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает арккосинус numeric_exp в виде угла, выраженного в радианах.
SELECT ACOS(COS(PI())), PI(); ACOS(COS(PI())) | PI() -----------------+----------------- 3.141592653589793|3.141592653589793
ASIN
Синопсис:
ASIN(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает арксинус numeric_exp в виде угла, выраженного в радианах.
SELECT ROUND(DEGREES(ASIN(0.7071067811865475))) AS "ASIN(0.707)", ROUND(SIN(RADIANS(45)), 3) AS "SIN(45)"; ASIN(0.707) | SIN(45) ---------------+--------------- 45.0 |0.707
ATAN
Синопсис:
ATAN(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает арктангенс numeric_exp в виде угла, выраженного в радианах.
SELECT DEGREES(ATAN(TAN(RADIANS(90)))); DEGREES(ATAN(TAN(RADIANS(90)))) ------------------------------- 90.0
ATAN2
Синопсис:
ATAN2(
ordinate,
abscisa) Входные данные:
| числовое выражение. Если | |
| числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает арктангенс координат ordinate и abscisa в виде угла, выраженного в радианах.
SELECT ATAN2(5 * SIN(RADIANS(45)), 5 * COS(RADIANS(45))) AS "ATAN2(5*SIN(45), 5*COS(45))", RADIANS(45); ATAN2(5*SIN(45), 5*COS(45))| RADIANS(45) ---------------------------+------------------ 0.7853981633974483 |0.7853981633974483
COS
Синопсис:
COS(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает косинус numeric_exp, где numeric_exp — угол, выраженный в радианах.
SELECT COS(RADIANS(180)), POWER(SIN(RADIANS(54)), 2) + POWER(COS(RADIANS(54)), 2) AS pythagorean_identity; COS(RADIANS(180))|pythagorean_identity -----------------+-------------------- -1.0 |1.0
COSH
Синопсис:
COSH(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает гиперболический косинус numeric_exp.
SELECT COSH(5), (POWER(E(), 5) + POWER(E(), -5)) / 2 AS "(e^5 + e^-5)/2";
COSH(5) | (e^5 + e^-5)/2
-----------------+-----------------
74.20994852478785|74.20994852478783 COT
Описание:
COT(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает котангенс от numeric_exp, где numeric_exp — угол, выраженный в радианах.
SELECT COT(RADIANS(30)) AS "COT(30)", COS(RADIANS(30)) / SIN(RADIANS(30)) AS "COS(30)/SIN(30)";
COT(30) | COS(30)/SIN(30)
------------------+------------------
1.7320508075688774|1.7320508075688776 DEGREES
Описание:
DEGREES(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Преобразование из радианов в градусы.
SELECT DEGREES(PI() * 2), DEGREES(PI()); DEGREES(PI() * 2)| DEGREES(PI()) -----------------+--------------- 360.0 |180.0
RADIANS
Описание:
RADIANS(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Преобразование из градусов в радианы.
SELECT RADIANS(90), PI()/2; RADIANS(90) | PI()/2 ------------------+------------------ 1.5707963267948966|1.5707963267948966
SIN
Описание:
SIN(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает синус от numeric_exp, где numeric_exp — угол, выраженный в радианах.
SELECT SIN(RADIANS(90)), POWER(SIN(RADIANS(67)), 2) + POWER(COS(RADIANS(67)), 2) AS pythagorean_identity; SIN(RADIANS(90))|pythagorean_identity ----------------+-------------------- 1.0 |1.0
SINH
Описание:
SINH(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает гиперболический синус от numeric_exp.
SELECT SINH(5), (POWER(E(), 5) - POWER(E(), -5)) / 2 AS "(e^5 - e^-5)/2";
SINH(5) | (e^5 - e^-5)/2
-----------------+-----------------
74.20321057778875|74.20321057778874 TAN
Описание:
TAN(numeric_exp)
Входные данные:
| числовое выражение. Если |
Выходные данные: двойное числовое значение
Описание: Возвращает тангенс от numeric_exp, где numeric_exp — угол, выраженный в радианах.
SELECT TAN(RADIANS(66)) AS "TAN(66)", SIN(RADIANS(66))/COS(RADIANS(66)) AS "SIN(66)/COS(66)=TAN(66)";
TAN(66) |SIN(66)/COS(66)=TAN(66)
------------------+-----------------------
2.2460367739042164|2.246036773904216
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/sql-functions-math.html