Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›SQL ›Функции и операторы

Математические функции

Все математические и тригонометрические функции требуют числового входного значения (где это применимо).

Общие

ABS

Синопсис:

ABS(numeric_exp) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: числовое

Описание: Возвращает абсолютное значение numeric_exp. Тип возвращаемого значения совпадает с типом входного значения.

SELECT ABS(-123.5), ABS(55);

  ABS(-123.5)  |    ABS(55)
---------------+---------------
123.5          |55

CBRT

Синопсис:

CBRT(numeric_exp) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает кубический корень из numeric_exp.

SELECT CBRT(-125.5);

   CBRT(-125.5)
-------------------
-5.0066577974783435

CEIL/CEILING

Синопсис:

CEIL(numeric_exp) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: целое или длинное числовое значение

Описание: Возвращает наименьшее целое число, большее или равное 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) 

Входные данные:

вещественное числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает число Эйлера в степени 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) 

Входные данные:

вещественное числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает число Эйлера в степени 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) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: целое или длинное числовое значение

Описание: Возвращает наибольшее целое число, меньшее или равное numeric_exp.

SELECT FLOOR(125.01), FLOOR(-125.99);

 FLOOR(125.01) |FLOOR(-125.99)
---------------+---------------
125            |-126

LOG

Синопсис:

LOG(numeric_exp) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает натуральный логарифм numeric_exp.

SELECT EXP(3), LOG(20.085536923187668);

      EXP(3)      |LOG(20.085536923187668)
------------------+-----------------------
20.085536923187668|3.0

LOG10

Синопсис:

LOG10(numeric_exp) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает десятичный логарифм 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) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

целочисленное выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает значение 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) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает случайное вещественное число с заданным начальным значением.

SELECT RANDOM(123);

   RANDOM(123)
------------------
0.7231742029971469

ROUND

Синопсис:

ROUND(
    numeric_exp      
    [, integer_exp]) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

целочисленное выражение; необязательно. Если null, функция возвращает null.

Выходные данные: числовое

Описание: Возвращает 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) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: [-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) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает квадратный корень из 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]) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

целочисленное выражение; необязательно. Если null, функция возвращает null.

Выходные данные: числовое

Описание: Возвращает 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) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает арккосинус numeric_exp в виде угла, выраженного в радианах.

SELECT ACOS(COS(PI())), PI();

 ACOS(COS(PI())) |      PI()
-----------------+-----------------
3.141592653589793|3.141592653589793

ASIN

Синопсис:

ASIN(numeric_exp) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает арксинус 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) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает арктангенс numeric_exp в виде угла, выраженного в радианах.

SELECT DEGREES(ATAN(TAN(RADIANS(90))));

DEGREES(ATAN(TAN(RADIANS(90))))
-------------------------------
90.0

ATAN2

Синопсис:

ATAN2(
    ordinate, 
    abscisa)  

Входные данные:

числовое выражение. Если null, функция возвращает null.

числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает арктангенс координат 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) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает косинус 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) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает гиперболический косинус 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) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает котангенс от 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) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Преобразование из радианов в градусы.

SELECT DEGREES(PI() * 2), DEGREES(PI());

DEGREES(PI() * 2)| DEGREES(PI())
-----------------+---------------
360.0            |180.0

RADIANS

Описание:

RADIANS(numeric_exp) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Преобразование из градусов в радианы.

SELECT RADIANS(90), PI()/2;

   RADIANS(90)    |      PI()/2
------------------+------------------
1.5707963267948966|1.5707963267948966

SIN

Описание:

SIN(numeric_exp) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает синус от 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) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает гиперболический синус от 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) 

Входные данные:

числовое выражение. Если null, функция возвращает null.

Выходные данные: двойное числовое значение

Описание: Возвращает тангенс от 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API