2020-10-26 10:29:30 +00:00
---
2022-08-26 17:37:11 +00:00
slug: /ru/sql-reference/functions/math-functions
2022-04-09 13:29:05 +00:00
sidebar_position: 44
sidebar_label: "Математические функции"
2020-10-26 10:29:30 +00:00
---
2020-03-20 18:20:59 +00:00
# Математические функции {#matematicheskie-funktsii}
2017-10-25 05:27:09 +00:00
2017-03-12 17:58:51 +00:00
В с е функции возвращают число типа Float64. Точность результата близка к максимально возможной, но результат может не совпадать с наиболее близким к соответствующему вещественному числу машинно представимым числом.
2020-03-20 18:20:59 +00:00
## e() {#e}
2017-10-25 05:27:09 +00:00
2018-04-10 10:36:42 +00:00
Возвращает число типа Float64, близкое к числу e.
2017-03-12 17:58:51 +00:00
2020-03-20 18:20:59 +00:00
## pi() {#pi}
2018-04-10 10:36:42 +00:00
Возвращает число типа Float64, близкое к числу π.
2017-03-12 17:58:51 +00:00
2020-03-20 18:20:59 +00:00
## exp(x) {#expx}
2017-03-12 17:58:51 +00:00
Принимает числовой аргумент, возвращает число типа Float64, близкое к экспоненте от аргумента.
2020-03-20 18:20:59 +00:00
## log(x) {#logx}
2017-03-12 17:58:51 +00:00
Принимает числовой аргумент, возвращает число типа Float64, близкое к натуральному логарифму от аргумента.
2020-03-20 18:20:59 +00:00
## exp2(x) {#exp2x}
2018-04-10 10:36:42 +00:00
Принимает числовой аргумент, возвращает число типа Float64, близкое к 2 в степени x.
2017-03-12 17:58:51 +00:00
2020-03-20 18:20:59 +00:00
## log2(x) {#log2x}
2017-03-12 17:58:51 +00:00
Принимает числовой аргумент, возвращает число типа Float64, близкое к двоичному логарифму от аргумента.
2020-03-20 18:20:59 +00:00
## exp10(x) {#exp10x}
2018-04-10 10:36:42 +00:00
Принимает числовой аргумент, возвращает число типа Float64, близкое к 10 в степени x.
2017-03-12 17:58:51 +00:00
2020-03-20 18:20:59 +00:00
## log10(x) {#log10x}
2017-03-12 17:58:51 +00:00
Принимает числовой аргумент, возвращает число типа Float64, близкое к десятичному логарифму от аргумента.
2020-03-20 18:20:59 +00:00
## sqrt(x) {#sqrtx}
2017-03-12 17:58:51 +00:00
Принимает числовой аргумент, возвращает число типа Float64, близкое к квадратному корню от аргумента.
2020-03-20 18:20:59 +00:00
## cbrt(x) {#cbrtx}
2017-03-12 17:58:51 +00:00
Принимает числовой аргумент, возвращает число типа Float64, близкое к кубическому корню от аргумента.
2020-03-20 18:20:59 +00:00
## erf(x) {#erfx}
2017-03-12 17:58:51 +00:00
Если x неотрицательно, то erf(x / σ √2) - вероятность того, что случайная величина, имеющая нормальное распределение с о среднеквадратичным отклонением σ , принимает значение, отстоящее от мат. ожидания больше чем на x.
Пример (правило трёх сигм):
2020-03-20 18:20:59 +00:00
``` sql
2021-03-13 18:18:45 +00:00
SELECT erf(3 / sqrt(2));
2017-10-25 05:27:09 +00:00
```
2017-06-13 04:15:47 +00:00
2020-03-20 18:20:59 +00:00
``` text
2017-10-25 05:27:09 +00:00
┌─erf(divide(3, sqrt(2)))─┐
│ 0.9973002039367398 │
└─────────────────────────┘
```
2017-03-12 17:58:51 +00:00
2020-03-20 18:20:59 +00:00
## erfc(x) {#erfcx}
2017-03-12 17:58:51 +00:00
Принимает числовой аргумент, возвращает число типа Float64, близкое к 1 - erf(x), но без потери точности для больших x.
2020-03-20 18:20:59 +00:00
## lgamma(x) {#lgammax}
2017-03-12 17:58:51 +00:00
Логарифм от гамма функции.
2020-03-20 18:20:59 +00:00
## tgamma(x) {#tgammax}
2017-03-12 17:58:51 +00:00
Гамма функция.
2020-03-20 18:20:59 +00:00
## sin(x) {#sinx}
2017-03-12 17:58:51 +00:00
Синус.
2020-03-20 18:20:59 +00:00
## cos(x) {#cosx}
2017-03-12 17:58:51 +00:00
Косинус.
2020-03-20 18:20:59 +00:00
## tan(x) {#tanx}
2017-03-12 17:58:51 +00:00
Тангенс.
2020-03-20 18:20:59 +00:00
## asin(x) {#asinx}
2017-03-12 17:58:51 +00:00
Арксинус.
2020-03-20 18:20:59 +00:00
## acos(x) {#acosx}
2017-03-12 17:58:51 +00:00
Арккосинус.
2020-03-20 18:20:59 +00:00
## atan(x) {#atanx}
2017-03-12 17:58:51 +00:00
Арктангенс.
2020-03-20 18:20:59 +00:00
## pow(x, y) {#powx-y}
2018-04-10 10:36:42 +00:00
Принимает два числовых аргумента x и y. Возвращает число типа Float64, близкое к x в степени y.
2018-10-16 10:47:17 +00:00
2020-12-03 20:59:17 +00:00
## cosh(x) {#coshx}
[Гиперболический косинус ](https://help.scilab.org/docs/5.4.0/ru_RU/cosh.html ).
**Синтаксис**
``` sql
cosh(x)
```
2021-03-13 18:18:45 +00:00
**Аргументы**
2020-12-03 20:59:17 +00:00
- `x` — угол в радианах. Значения из интервала: `-∞ < x < +∞` . [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
**Возвращаемое значение**
- Значения из интервала: `1 <= cosh(x) < +∞` .
Тип: [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
**Пример**
Запрос:
``` sql
SELECT cosh(0);
```
Результат:
``` text
┌─cosh(0)──┐
│ 1 │
└──────────┘
```
## acosh(x) {#acoshx}
[Обратный гиперболический косинус ](https://help.scilab.org/docs/5.4.0/ru_RU/acosh.html ).
**Синтаксис**
``` sql
acosh(x)
```
2021-03-13 18:18:45 +00:00
**Аргументы**
2020-12-03 20:59:17 +00:00
2020-12-06 09:55:09 +00:00
- `x` — гиперболический косинус угла. Значения из интервала: `1 <= x < +∞` . [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
2020-12-03 20:59:17 +00:00
**Возвращаемое значение**
2020-12-06 09:55:09 +00:00
- Угол в радианах. Значения из интервала: `0 <= acosh(x) < +∞` .
2020-12-03 20:59:17 +00:00
Тип: [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
**Пример**
Запрос:
``` sql
SELECT acosh(1);
```
Результат:
``` text
┌─acosh(1)─┐
│ 0 │
└──────────┘
```
**Смотрите также**
- [cosh(x) ](../../sql-reference/functions/math-functions.md#coshx )
## sinh(x) {#sinhx}
[Гиперболический синус ](https://help.scilab.org/docs/5.4.0/ru_RU/sinh.html ).
**Синтаксис**
``` sql
sinh(x)
```
2021-03-13 18:18:45 +00:00
**Аргументы**
2020-12-03 20:59:17 +00:00
- `x` — угол в радианах. Значения из интервала: `-∞ < x < +∞` . [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
**Возвращаемое значение**
- Значения из интервала: `-∞ < sinh(x) < +∞` .
Тип: [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
**Пример**
Запрос:
``` sql
SELECT sinh(0);
```
Результат:
``` text
┌─sinh(0)──┐
│ 0 │
└──────────┘
```
## asinh(x) {#asinhx}
[Обратный гиперболический синус ](https://help.scilab.org/docs/5.4.0/ru_RU/asinh.html ).
**Синтаксис**
``` sql
asinh(x)
```
2021-03-13 18:18:45 +00:00
**Аргументы**
2020-12-03 20:59:17 +00:00
2020-12-06 09:55:09 +00:00
- `x` — гиперболический синус угла. Значения из интервала: `-∞ < x < +∞` . [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
2020-12-03 20:59:17 +00:00
**Возвращаемое значение**
2020-12-06 09:55:09 +00:00
- Угол в радианах. Значения из интервала: `-∞ < asinh(x) < +∞` .
2020-12-03 20:59:17 +00:00
Тип: [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
**Пример**
Запрос:
``` sql
SELECT asinh(0);
```
Результат:
``` text
┌─asinh(0)─┐
│ 0 │
└──────────┘
```
**Смотрите также**
- [sinh(x) ](../../sql-reference/functions/math-functions.md#sinhx )
## atanh(x) {#atanhx}
[Обратный гиперболический тангенс ](https://help.scilab.org/docs/5.4.0/ru_RU/atanh.html ).
**Синтаксис**
``` sql
atanh(x)
```
2021-03-13 18:18:45 +00:00
**Аргументы**
2020-12-03 20:59:17 +00:00
2020-12-06 09:55:09 +00:00
- `x` — гиперболический тангенс угла. Значения из интервала: `– 1 < x < 1` . [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
2020-12-03 20:59:17 +00:00
**Возвращаемое значение**
2020-12-06 09:55:09 +00:00
- Угол в радианах. Значения из интервала: `-∞ < atanh(x) < +∞` .
2020-12-03 20:59:17 +00:00
Тип: [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
**Пример**
Запрос:
``` sql
SELECT atanh(0);
```
Результат:
``` text
┌─atanh(0)─┐
│ 0 │
└──────────┘
```
## atan2(y, x) {#atan2yx}
[Функция ](https://msoffice-prowork.com/ref/excel/excelfunc/math/atan2/ ) вычисляет угол в радианах между положительной осью x и линией, проведенной из начала координат в точку `(x, y) ≠ (0, 0)` .
**Синтаксис**
``` sql
atan2(y, x)
```
2021-03-13 18:18:45 +00:00
**Аргументы**
2020-12-03 20:59:17 +00:00
- `y` — координата y точки, в которую проведена линия. [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
- `x` — координата х точки, в которую проведена линия. [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
**Возвращаемое значение**
- Угол `θ` в радианах из интервала: `−π < θ ≤ π` .
Тип: [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
**Пример**
Запрос:
``` sql
SELECT atan2(1, 1);
```
Результат:
``` text
┌────────atan2(1, 1)─┐
│ 0.7853981633974483 │
└────────────────────┘
```
## hypot(x, y) {#hypotxy}
Вычисляет длину гипотенузы прямоугольного треугольника. При использовании этой [функции ](https://php.ru/manual/function.hypot.html ) не возникает проблем при возведении в квадрат очень больших или очень малых чисел.
**Синтаксис**
``` sql
hypot(x, y)
```
2021-03-13 18:18:45 +00:00
**Аргументы**
2020-12-03 20:59:17 +00:00
- `x` — первый катет прямоугольного треугольника. [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
- `y` — второй катет прямоугольного треугольника. [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
**Возвращаемое значение**
- Длина гипотенузы прямоугольного треугольника.
Тип: [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
**Пример**
Запрос:
``` sql
SELECT hypot(1, 1);
```
Результат:
``` text
┌────────hypot(1, 1)─┐
│ 1.4142135623730951 │
└────────────────────┘
```
## log1p(x) {#log1px}
Вычисляет `log(1+x)` . [Функция ](https://help.scilab.org/docs/6.0.1/ru_RU/log1p.html ) `log1p(x)` является более точной, чем функция `log(1+x)` для малых значений x.
**Синтаксис**
``` sql
log1p(x)
```
2021-03-13 18:18:45 +00:00
**Аргументы**
2020-12-03 20:59:17 +00:00
- `x` — значения из интервала: `-1 < x < +∞` . [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
**Возвращаемое значение**
- Значения из интервала: `-∞ < log1p(x) < +∞` .
Тип: [Float64 ](../../sql-reference/data-types/float.md#float32-float64 ).
**Пример**
Запрос:
``` sql
SELECT log1p(0);
```
Результат:
``` text
┌─log1p(0)─┐
│ 0 │
└──────────┘
```
**Смотрите также**
2020-12-04 20:24:31 +00:00
- [log(x) ](../../sql-reference/functions/math-functions.md#logx )
2020-12-03 20:59:17 +00:00
2021-03-06 11:13:14 +00:00
## sign(x) {#signx}
2021-03-12 02:12:28 +00:00
Возвращает знак действительного числа.
2021-03-06 11:13:14 +00:00
**Синтаксис**
``` sql
sign(x)
```
**Аргумент**
- `x` — Значения от `-∞` до `+∞` . Любой числовой тип, поддерживаемый ClickHouse.
**Возвращаемое значение**
- -1 если `x < 0`
- 0 если `x = 0`
- 1 если `x > 0`
**Примеры**
2021-03-12 02:12:28 +00:00
Результат sign() для нуля:
2021-03-06 11:13:14 +00:00
``` sql
SELECT sign(0);
```
2021-03-06 20:51:42 +00:00
Результат:
2021-03-06 11:13:14 +00:00
``` text
┌─sign(0)─┐
│ 0 │
└─────────┘
```
2021-03-12 02:12:28 +00:00
Результат sign() для положительного аргумента:
2021-03-06 11:13:14 +00:00
``` sql
SELECT sign(1);
```
2021-03-06 20:51:42 +00:00
Результат:
2021-03-06 11:13:14 +00:00
``` text
┌─sign(1)─┐
│ 1 │
└─────────┘
```
2021-03-12 02:12:28 +00:00
Результат sign() для отрицательного аргумента:
2021-03-06 11:13:14 +00:00
``` sql
SELECT sign(-1);
```
2021-03-06 20:51:42 +00:00
Результат:
2021-03-06 11:13:14 +00:00
``` text
┌─sign(-1)─┐
│ -1 │
└──────────┘
```