Числовые функции

rand()

Функция rand() возвращает псевдослучайное число с плавающей точкой из диапазона [0.0, 1.0), то есть включающего 0.0 и не включающего 1.0. Возвращаемые значения приближённо соответствуют равномерному распределению.

Синтаксис: rand()

Возвращаемое значение:

Число с плавающей точкой.

Запрос:

SELECT *
FROM cypher('graph_name', $$
    RETURN rand()
$$) as (random_number agtype);

Возвращает случайное число.

Результат:

random_number
0.3586784748902053
1 строка

abs()

Функция abs() возвращает абсолютное значение заданного числа.

Синтаксис: abs(expression)

Возвращаемое значение:

Результат имеет тот же тип, что и `expression`.

Параметры:

Имя Описание
expression Числовое выражение типа agtype.

Примечания:

  • abs(null) возвращает null.
  • Если expression отрицательно, abs() возвращает -(expression) — аддитивный обратный элемент.

Запрос:

SELECT *
FROM cypher('graph_name', $$
    MATCH (a), (e) WHERE a.name = 'Alice' AND e.name = 'Eskil'
    RETURN a.age, e.age, abs(a.age - e.age)
$$) as (alice_age agtype, eskil_age agtype, difference agtype);

Возвращает абсолютную разницу между двумя возрастами.

Результат:

alice_age eskil_age difference
38 41 3
1 строка

ceil()

Функция ceil() возвращает наименьшее число с плавающей точкой, которое больше или равно заданному числу и является математически целым.

Синтаксис: ceil(expression)

Возвращаемое значение:

Число с плавающей точкой.

Параметры:

Имя Описание
expression Числовое выражение типа agtype.

Примечания:

  • ceil(null) возвращает null.

Запрос:

SELECT *
FROM cypher('graph_name', $$
    RETURN ceil(0.1)
$$) as (ceil_value agtype);

Возвращает «потолок» для 0.1.

Результат:

ceil_value
1
1 строка

floor()

Функция floor() возвращает наибольшее число с плавающей точкой, которое меньше или равно заданному числу и является математически целым.

Синтаксис: floor(expression)

Возвращаемое значение:

Число с плавающей точкой.

Параметры:

Имя Описание
expression Числовое выражение типа agtype.

Примечания:

  • floor(null) возвращает null.

Запрос:

SELECT *
FROM cypher('graph_name', $$
    RETURN floor(0.1)
$$) as (flr agtype);

Возвращает «пол» для 0.1.

Результат:

flr
0
1 строка

round()

Функция round() возвращает ближайшее целое число к заданному числу, округлённое до ближайшего целого.

Синтаксис: round(expression)

Возвращаемое значение:

Число с плавающей точкой.

Параметры:

Имя Описание
expression Числовое выражение типа agtype.

Примечания:

  • round(null) возвращает null.

Запрос:

SELECT *
FROM cypher('graph_name', $$
    RETURN round(3.141592)
$$) as (rounded_value agtype);

Возвращает 3.0.

Результат:

rounded_value
3.0
1 строка

sign()

Функция sign() возвращает знак заданного числа: 0, если число равно нулю; -1 — для любого отрицательного числа; 1 — для любого положительного числа.

Синтаксис: sign(expression)

Возвращаемое значение:

Целое число.

Параметры:

Имя Описание
expression Числовое выражение типа agtype.

Примечания:

  • sign(null) возвращает null.

Запрос:

SELECT *
FROM cypher('graph_name', $$
    RETURN sign(-17), sign(0.1), sign(0)
$$) as (negative_sign agtype, positive_sign agtype, zero_sign agtype);

Возвращает знаки чисел -17 и 0.1.

Результат:

negative_sign positive_sign zero_sign
-1 1 0
1 строка