Перейти к основному содержимому
Перейти к основному содержимому

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

e

Возвращает ee (постоянная Эйлера).

Синтаксис

e()

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

Тип: Float64.

pi

Возвращает π\pi (Пи).

Синтаксис

pi()

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

Тип: Float64.

exp

Возвращает exe^{x}, где x — заданный аргумент функции.

Синтаксис

exp(x)

Аргументы

Пример

Запрос:

SELECT round(exp(-1), 4);

Результат:

┌─round(exp(-1), 4)─┐
│            0.3679 │
└───────────────────┘

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

Тип: Float*.

log

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

Синтаксис

log(x)

Псевдоним: ln(x)

Аргументы

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

Тип: Float*.

exp2

Возвращает 2 в степени заданного аргумента.

Синтаксис

exp2(x)

Аргументы

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

Тип: Float*.

intExp2

Как exp, но возвращает UInt64.

Синтаксис

intExp2(x)

log2

Возвращает двоичный логарифм аргумента.

Синтаксис

log2(x)

Аргументы

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

Тип: Float*.

exp10

Возвращает 10 в степени заданного аргумента.

Синтаксис

exp10(x)

Аргументы

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

Тип: Float*.

intExp10

Как exp10, но возвращает UInt64.

Синтаксис

intExp10(x)

log10

Возвращает десятичный логарифм аргумента.

Синтаксис

log10(x)

Аргументы

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

Тип: Float*.

sqrt

Возвращает квадратный корень аргумента.

sqrt(x)

Аргументы

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

Тип: Float*.

cbrt

Возвращает кубический корень аргумента.

cbrt(x)

Аргументы

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

Тип: Float*.

erf

Если x неотрицателен, то erf(xσ2)erf(\frac{x}{\sigma\sqrt{2}}) — это вероятность того, что случайная величина с нормальным распределением со стандартным отклонением σ\sigma принимает значение, отделенное от ожидаемого значения на более чем x.

Синтаксис

erf(x)

Аргументы

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

Тип: Float*.

Пример

(правило трех сигм)

SELECT erf(3 / sqrt(2));
┌─erf(divide(3, sqrt(2)))─┐
│      0.9973002039367398 │
└─────────────────────────┘

erfc

Возвращает число, близкое к 1erf(x)1-erf(x) без потери точности для больших значений x.

Синтаксис

erfc(x)

Аргументы

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

Тип: Float*.

lgamma

Возвращает логарифм гамма-функции.

Синтаксис

lgamma(x)

Аргументы

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

Тип: Float*.

tgamma

Возвращает гамма-функцию.

Синтаксис

gamma(x)

Аргументы

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

Тип: Float*.

sin

Возвращает синус аргумента.

Синтаксис

sin(x)

Аргументы

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

Тип: Float*.

Пример

Запрос:

SELECT sin(1.23);
0.9424888019316975

cos

Возвращает косинус аргумента.

Синтаксис

cos(x)

Аргументы

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

Тип: Float*.

tan

Возвращает тангенс аргумента.

Синтаксис

tan(x)

Аргументы

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

Тип: Float*.

asin

Возвращает арксинус аргумента.

Синтаксис

asin(x)

Аргументы

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

Тип: Float*.

acos

Возвращает арккосинус аргумента.

Синтаксис

acos(x)

Аргументы

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

Тип: Float*.

atan

Возвращает арктангенс аргумента.

Синтаксис

atan(x)

Аргументы

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

Тип: Float*.

pow

Возвращает xyx^y.

Синтаксис

pow(x, y)

Псевдоним: power(x, y)

Аргументы

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

Тип: Float64.

cosh

Возвращает гиперболический косинус аргумента.

Синтаксис

cosh(x)

Аргументы

  • x — Угол в радианах. Значения из интервала: <x<+-\infty \lt x \lt +\infty. (U)Int*, Float* или Decimal*.

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

  • Значения из интервала: 1cosh(x)<+1 \le cosh(x) \lt +\infty.

Тип: Float64.

Пример

SELECT cosh(0);

Результат:

┌─cosh(0)──┐
│        1 │
└──────────┘

acosh

Возвращает обратный гиперболический косинус.

Синтаксис

acosh(x)

Аргументы

  • x — Гиперболический косинус угла. Значения из интервала: 1x<+1 \le x \lt +\infty. (U)Int*, Float* или Decimal*.

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

  • Угол в радианах. Значения из интервала: 0acosh(x)<+0 \le acosh(x) \lt +\infty.

Тип: Float64.

Пример

SELECT acosh(1);

Результат:

┌─acosh(1)─┐
│        0 │
└──────────┘

sinh

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

Синтаксис

sinh(x)

Аргументы

  • x — Угол в радианах. Значения из интервала: <x<+-\infty \lt x \lt +\infty. (U)Int*, Float* или Decimal*.

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

  • Значения из интервала: <sinh(x)<+-\infty \lt sinh(x) \lt +\infty.

Тип: Float64.

Пример

SELECT sinh(0);

Результат:

┌─sinh(0)──┐
│        0 │
└──────────┘

asinh

Возвращает обратный гиперболический синус.

Синтаксис

asinh(x)

Аргументы

  • x — Гиперболический синус угла. Значения из интервала: <x<+-\infty \lt x \lt +\infty. (U)Int*, Float* или Decimal*.

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

  • Угол в радианах. Значения из интервала: <asinh(x)<+-\infty \lt asinh(x) \lt +\infty.

Тип: Float64.

Пример

SELECT asinh(0);

Результат:

┌─asinh(0)─┐
│        0 │
└──────────┘

tanh

Возвращает гиперболический тангенс.

Синтаксис

tanh(x)

Аргументы

  • x — Угол в радианах. Значения из интервала: <x<+-\infty \lt x \lt +\infty. (U)Int*, Float* или Decimal*.

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

  • Значения из интервала: 1<tanh(x)<1-1 \lt tanh(x) \lt 1.

Тип: Float*.

Пример

SELECT tanh(0);

Результат:

0

atanh

Возвращает обратный гиперболический тангенс.

Синтаксис

atanh(x)

Аргументы

  • x — Гиперболический тангенс угла. Значения из интервала: 1<x<1-1 \lt x \lt 1. (U)Int*, Float* или Decimal*.

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

  • Угол в радианах. Значения из интервала: <atanh(x)<+-\infty \lt atanh(x) \lt +\infty.

Тип: Float64.

Пример

SELECT atanh(0);

Результат:

┌─atanh(0)─┐
│        0 │
└──────────┘

atan2

Возвращает atan2 как угол в евклидовой плоскости, заданный в радианах, между положительной осью x и лучом к точке (x, y) ≠ (0, 0).

Синтаксис

atan2(y, x)

Аргументы

  • y — y-координата точки, через которую проходит луч. (U)Int*, Float* или Decimal*.
  • x — x-координата точки, через которую проходит луч. (U)Int*, Float* или Decimal*.

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

  • Угол θ, такой что π<0π-\pi \lt 0 \le \pi, в радианах.

Тип: Float64.

Пример

SELECT atan2(1, 1);

Результат:

┌────────atan2(1, 1)─┐
│ 0.7853981633974483 │
└────────────────────┘

hypot

Возвращает длину гипотенузы прямоугольного треугольника. Hypot предотвращает проблемы, возникающие при возведении очень больших или очень маленьких чисел в квадрат.

Синтаксис

hypot(x, y)

Аргументы

  • x — Первый катет прямоугольного треугольника. (U)Int*, Float* или Decimal*.
  • y — Второй катет прямоугольного треугольника. (U)Int*, Float* или Decimal*.

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

  • Длина гипотенузы прямоугольного треугольника.

Тип: Float64.

Пример

SELECT hypot(1, 1);

Результат:

┌────────hypot(1, 1)─┐
│ 1.4142135623730951 │
└────────────────────┘

log1p

Вычисляет log(1+x). Вычисление log1p(x) более точно, чем log(1+x) для малых значений x.

Синтаксис

log1p(x)

Аргументы

  • x — Значения из интервала: 1<x<+-1 \lt x \lt +\infty. (U)Int*, Float* или Decimal*.

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

  • Значения из интервала: <log1p(x)<+-\infty < log1p(x) \lt +\infty.

Тип: Float64.

Пример

SELECT log1p(0);

Результат:

┌─log1p(0)─┐
│        0 │
└──────────┘

sign

Возвращает знак действительного числа.

Синтаксис

sign(x)

Аргументы

  • x — Значения из -\infty до ++\infty. Поддерживает все числовые типы в ClickHouse.

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

  • -1 для x < 0
  • 0 для x = 0
  • 1 для x > 0

Примеры

Знак для нулевого значения:

SELECT sign(0);

Результат:

┌─sign(0)─┐
│       0 │
└─────────┘

Знак для положительного значения:

SELECT sign(1);

Результат:

┌─sign(1)─┐
│       1 │
└─────────┘

Знак для отрицательного значения:

SELECT sign(-1);

Результат:

┌─sign(-1)─┐
│       -1 │
└──────────┘

sigmoid

Возвращает сигмоидальную функцию.

Синтаксис

sigmoid(x)

Параметры

  • x — входное значение. Значения из интервала: <x<+-\infty \lt x \lt +\infty. (U)Int*, Float* или Decimal*.

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

  • Соответствующее значение вдоль сигмоидальной кривой от 0 до 1. Float64.

Пример

Запрос:

SELECT round(sigmoid(x), 5) FROM (SELECT arrayJoin([-1, 0, 1]) AS x);

Результат:

0.26894
0.5
0.73106

degrees

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

Синтаксис

degrees(x)

Аргументы

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

  • Значение в градусах. Float64.

Пример

SELECT degrees(3.141592653589793);

Результат:

┌─degrees(3.141592653589793)─┐
│                        180 │
└────────────────────────────┘

radians

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

Синтаксис

radians(x)

Аргументы

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

  • Значение в радианах.

Тип: Float64.

Пример

SELECT radians(180);

Результат:

┌──────radians(180)─┐
│ 3.141592653589793 │
└───────────────────┘

factorial

Вычисляет факториал целого числа. Работает с любым нативным целочисленным типом, включая UInt(8|16|32|64) и Int(8|16|32|64). Возвращаемый тип — UInt64.

Факториал 0 равен 1. Также функция factorial() возвращает 1 для любого отрицательного значения. Максимальное положительное значение для входного аргумента равно 20, значение 21 или больше приведет к возникновению исключения.

Синтаксис

factorial(n)

Пример

SELECT factorial(10);

Результат:

┌─factorial(10)─┐
│       3628800 │
└───────────────┘

width_bucket

Возвращает номер ведра, в которое попадает operand в гистограмме с count равными по ширине ведрами, охватывающими диапазон от low до high. Возвращает 0, если operand < low, и возвращает count+1, если operand >= high.

operand, low, high могут быть любым нативным числовым типом. count может быть только беззнаковым целым числом, и его значение не может быть равно нулю.

Синтаксис

widthBucket(operand, low, high, count)

Псевдоним: WIDTH_BUCKET

Пример

SELECT widthBucket(10.15, -8.6, 23, 18);

Результат:

┌─widthBucket(10.15, -8.6, 23, 18)─┐
│                               11 │
└──────────────────────────────────┘

proportionsZTest

Возвращает статистику теста для двух пропорционального Z-теста — статистического теста для сравнения пропорций двух популяций x и y.

Синтаксис

proportionsZTest(successes_x, successes_y, trials_x, trials_y, conf_level, pool_type)

Аргументы

  • successes_x: Количество успехов в популяции x. UInt64.
  • successes_y: Количество успехов в популяции y. UInt64.
  • trials_x: Количество испытаний в популяции x. UInt64.
  • trials_y: Количество испытаний в популяции y. UInt64.
  • conf_level: Уровень доверия для теста. Float64.
  • pool_type: Выбор пула (метод, которым оценивается стандартная ошибка). Может быть либо unpooled, либо pooled. String.
примечание

Для аргумента pool_type: В объединенной версии две пропорции усредняются, и для оценки стандартной ошибки используется только одна пропорция. В раздельной версии две пропорции используются отдельно.

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

  • z_stat: Z-статистика. Float64.
  • p_val: P-значение. Float64.
  • ci_low: Нижняя граница доверительного интервала. Float64.
  • ci_high: Верхняя граница доверительного интервала. Float64.

Пример

Запрос:

SELECT proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled');

Результат:

┌─proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled')───────────────────────────────┐
│ (-0.20656724435948853,0.8363478437079654,-0.09345975390115283,0.07563797172293502) │
└────────────────────────────────────────────────────────────────────────────────────┘