> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-3a82795f.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentation for mathematical functions

# Mathematical functions

{/*AUTOGENERATED_START*/}

<h2 id="acos">
  acos
</h2>

Introduced in: v1.1.0

Returns the arc cosine of the argument.

**Syntax**

```sql theme={null}
acos(x)
```

**Arguments**

* `x` — The value for which to find arc cosine of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the arc cosine of x [`Float*`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT acos(0.5);
```

```response title=Response theme={null}
1.0471975511965979
```

<h2 id="acosh">
  acosh
</h2>

Introduced in: v20.12.0

Returns the inverse hyperbolic cosine.

**Syntax**

```sql theme={null}
acosh(x)
```

**Arguments**

* `x` — Hyperbolic cosine of angle. Values from the interval: `1 ≤ x < +∞`. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the angle, in radians. Values from the interval: `0 ≤ acosh(x) < +∞`. [`Float64`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT acosh(1)
```

```response title=Response theme={null}
0
```

<h2 id="asin">
  asin
</h2>

Introduced in: v1.1.0

Calculates the arcsine of the provided argument.
For arguments in the range `[-1, 1]` it returns the value in the range of `[-pi() / 2, pi() / 2]`.

**Syntax**

```sql theme={null}
asin(x)
```

**Arguments**

* `x` — Argument for which to calculate arcsine of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal)

**Returned value**

Returns the arcsine value of the provided argument `x` [`Float64`](/reference/data-types/float)

**Examples**

**inverse**

```sql title=Query theme={null}
SELECT asin(1.0) = pi() / 2, sin(asin(1)), asin(sin(1))
```

```response title=Response theme={null}
1 1 1
```

**float32**

```sql title=Query theme={null}
SELECT toTypeName(asin(1.0::Float32))
```

```response title=Response theme={null}
Float64
```

**nan**

```sql title=Query theme={null}
SELECT asin(1.1), asin(-2), asin(inf), asin(nan)
```

```response title=Response theme={null}
nan nan nan nan
```

<h2 id="asinh">
  asinh
</h2>

Introduced in: v20.12.0

Returns the inverse hyperbolic sine.

**Syntax**

```sql theme={null}
asinh(x)
```

**Arguments**

* `x` — Hyperbolic sine of angle. Values from the interval: `-∞ < x < +∞`. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the angle, in radians. Values from the interval: `-∞ < asinh(x) < +∞`. [`Float64`](/reference/data-types/float)

**Examples**

**Basic usage**

```sql title=Query theme={null}
SELECT asinh(0)
```

```response title=Response theme={null}
0
```

<h2 id="atan">
  atan
</h2>

Introduced in: v1.1.0

Returns the arc tangent of the argument.

**Syntax**

```sql theme={null}
atan(x)
```

**Arguments**

* `x` — The value for which to find arc tangent of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the arc tangent of `x`. [`Float*`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT atan(1);
```

```response title=Response theme={null}
0.7853981633974483
```

<h2 id="atan2">
  atan2
</h2>

Introduced in: v20.12.0

Returns the atan2 as the angle in the Euclidean plane, given in radians, between the positive x axis and the ray to the point `(x, y) ≠ (0, 0)`.

**Syntax**

```sql theme={null}
atan2(y, x)
```

**Arguments**

* `y` — y-coordinate of the point through which the ray passes. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)
* `x` — x-coordinate of the point through which the ray passes. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the angle `θ` such that `-π < θ ≤ π`, in radians [`Float64`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT atan2(1, 1)
```

```response title=Response theme={null}
0.7853981633974483
```

<h2 id="atanh">
  atanh
</h2>

Introduced in: v20.12.0

Returns the inverse hyperbolic tangent.

**Syntax**

```sql theme={null}
atanh(x)
```

**Arguments**

* `x` — Hyperbolic tangent of angle. Values from the interval: -1 \< x \< 1. `(U)Int*`, `Float*` or `Decimal*`. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the angle, in radians. Values from the interval: -∞ \< atanh(x) \< +∞ [`Float64`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT atanh(0)
```

```response title=Response theme={null}
0
```

<h2 id="cbrt">
  cbrt
</h2>

Introduced in: v1.1.0

Returns the cubic root of the argument.

**Syntax**

```sql theme={null}
cbrt(x)
```

**Arguments**

* `x` — The value for which to find the cubic root of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the cubic root of `x`. [`Float*`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT cbrt(8);
```

```response title=Response theme={null}
2
```

<h2 id="cos">
  cos
</h2>

Introduced in: v1.1.0

Returns the cosine of the argument.

**Syntax**

```sql theme={null}
cos(x)
```

**Arguments**

* `x` — The angle in radians. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the cosine of `x`. [`Float*`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT cos(0);
```

```response title=Response theme={null}
1
```

<h2 id="cosh">
  cosh
</h2>

Introduced in: v20.12.0

Returns the hyperbolic cosine of the argument.

**Syntax**

```sql theme={null}
cosh(x)
```

**Arguments**

* `x` — The angle, in radians. Values from the interval: `-∞ < x < +∞`. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns values from the interval: `1 ≤ cosh(x) < +∞` [`Float64`](/reference/data-types/float)

**Examples**

**Basic usage**

```sql title=Query theme={null}
SELECT cosh(0)
```

```response title=Response theme={null}
1
```

<h2 id="degrees">
  degrees
</h2>

Introduced in: v22.2.0

Converts radians to degrees.

**Syntax**

```sql theme={null}
degrees(x)
```

**Arguments**

* `x` — Input in radians. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the value of `x` in degrees. [`Float64`](/reference/data-types/float)

**Examples**

**Basic usage**

```sql title=Query theme={null}
SELECT degrees(3.141592653589793)
```

```response title=Response theme={null}
180
```

<h2 id="e">
  e
</h2>

Introduced in: v1.1.0

Returns Euler's constant (e).

**Syntax**

```sql theme={null}
e()
```

**Arguments**

* None.

**Returned value**

Returns Euler's constant [`Float64`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT e();
```

```response title=Response theme={null}
2.718281828459045
```

<h2 id="erf">
  erf
</h2>

Introduced in: v1.1.0

If `x` is non-negative, then `erf(x/(σ√2))` is the probability that a random variable having a normal distribution with standard deviation `σ` takes the value that is separated from the expected value by more than `x`.

**Syntax**

```sql theme={null}
erf(x)
```

**Arguments**

* `x` — The value for which to compute the error function value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the error function value [`Float*`](/reference/data-types/float)

**Examples**

**Three sigma rule**

```sql title=Query theme={null}
SELECT erf(3 / sqrt(2))
```

```response title=Response theme={null}
┌─erf(divide(3, sqrt(2)))─┐
│      0.9973002039367398 │
└─────────────────────────┘
```

<h2 id="erfc">
  erfc
</h2>

Introduced in: v1.1.0

Returns a number close to `1-erf(x)` without loss of precision for large `x` values.

**Syntax**

```sql theme={null}
erfc(x)
```

**Arguments**

* `x` — The value for which to find the error function value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the complementary error function value [`Float*`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT erfc(0);
```

```response title=Response theme={null}
1
```

<h2 id="exp">
  exp
</h2>

Introduced in: v1.1.0

Returns e raised to the power of `x`, where `x` is the given argument to the function.

**Syntax**

```sql theme={null}
exp(x)
```

**Arguments**

* `x` — The exponent. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns `e^x` [`Float*`](/reference/data-types/float)

**Examples**

**Basic usage**

```sql title=Query theme={null}
SELECT round(exp(-1), 4)
```

```response title=Response theme={null}
┌─round(exp(-1), 4)─┐
│            0.3679 │
└───────────────────┘
```

<h2 id="exp10">
  exp10
</h2>

Introduced in: v1.1.0

Returns 10 to the power of the given argument.

**Syntax**

```sql theme={null}
exp10(x)
```

**Arguments**

* `x` — The exponent. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns 10^x [`Float*`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT exp10(2);
```

```response title=Response theme={null}
100
```

<h2 id="exp2">
  exp2
</h2>

Introduced in: v1.1.0

Returns 2 to the power of the given argument.

**Syntax**

```sql theme={null}
exp2(x)
```

**Arguments**

* `x` — The exponent. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns 2^x [`Float*`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT exp2(3);
```

```response title=Response theme={null}
8
```

<h2 id="factorial">
  factorial
</h2>

Introduced in: v22.11.0

Computes the factorial of an integer value.
The factorial of 0 is 1. Likewise, the `factorial()` function returns `1` for any negative value.
The maximum positive value for the input argument is `20`, a value of `21` or greater will cause an exception.

**Syntax**

```sql theme={null}
factorial(n)
```

**Arguments**

* `n` — Integer value for which to calculate the factorial. Maximum value is 20. [`(U)Int8/16/32/64`](/reference/data-types/int-uint)

**Returned value**

Returns the factorial of the input as UInt64. Returns 1 for input 0 or any negative value. [`UInt64`](/reference/data-types/int-uint)

**Examples**

**Usage example**

```sql title=Query theme={null}
factorial(10)
```

```response title=Response theme={null}
3628800
```

<h2 id="hypot">
  hypot
</h2>

Introduced in: v20.12.0

Returns the length of the hypotenuse of a right-angle triangle.
Hypot avoids problems that occur when squaring very large or very small numbers.

**Syntax**

```sql theme={null}
hypot(x, y)
```

**Arguments**

* `x` — The first cathetus of a right-angle triangle. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)
* `y` — The second cathetus of a right-angle triangle. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the length of the hypotenuse of a right-angle triangle. [`Float64`](/reference/data-types/float)

**Examples**

**Basic usage**

```sql title=Query theme={null}
SELECT hypot(1, 1)
```

```response title=Response theme={null}
1.4142135623730951
```

<h2 id="intExp10">
  intExp10
</h2>

Introduced in: v1.1.0

Like [exp10](#exp10) but returns a `UInt64` number.

**Syntax**

```sql theme={null}
intExp10(x)
```

**Arguments**

* `x` — The exponent. [`Int*`](/reference/data-types/int-uint) or [`UInt*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float)

**Returned value**

Returns 10^x. [`UInt64`](/reference/data-types/int-uint)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT intExp10(2);
```

```response title=Response theme={null}
100
```

<h2 id="intExp2">
  intExp2
</h2>

Introduced in: v1.1.0

Like [exp2](#exp2) but returns a `UInt64` number.

**Syntax**

```sql theme={null}
intExp2(x)
```

**Arguments**

* `x` — The exponent. [`Int*`](/reference/data-types/int-uint) or [`UInt*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float)

**Returned value**

Returns 2^x. [`UInt64`](/reference/data-types/int-uint)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT intExp2(3);
```

```response title=Response theme={null}
8
```

<h2 id="isPrime">
  isPrime
</h2>

Introduced in: v26.5.0

Returns `1` if the argument is a prime number, otherwise `0`.

Uses an exact lookup bitmap for small values and a deterministic [Miller-Rabin test](https://en.wikipedia.org/wiki/Miller-Rabin_primality_test)
for larger values. The result is exact for every supported input type.

For wider unsigned integer types (`UInt128`, `UInt256`), use [`isProbablePrime`](/reference/functions/regular-functions/math-functions#isProbablePrime) instead.

**Syntax**

```sql theme={null}
isPrime(n)
```

**Arguments**

* `n` — Unsigned integer to test for primality. [`UInt8`](/reference/data-types/int-uint) or [`UInt16`](/reference/data-types/int-uint) or [`UInt32`](/reference/data-types/int-uint) or [`UInt64`](/reference/data-types/int-uint)

**Returned value**

Returns `1` if `n` is prime, `0` otherwise. [`UInt8`](/reference/data-types/int-uint)

**Examples**

**Prime number**

```sql title=Query theme={null}
SELECT isPrime(17)
```

```response title=Response theme={null}
1
```

**Composite number**

```sql title=Query theme={null}
SELECT isPrime(18)
```

```response title=Response theme={null}
0
```

**Large `UInt64` prime**

```sql title=Query theme={null}
SELECT isPrime(18446744073709551557)
```

```response title=Response theme={null}
1
```

**Maximum `UInt64` value**

```sql title=Query theme={null}
SELECT isPrime(18446744073709551615)
```

```response title=Response theme={null}
0
```

<h2 id="isProbablePrime">
  isProbablePrime
</h2>

Introduced in: v26.5.0

Returns `1` if the argument is probably prime, `0` if it is definitely composite.

For `UInt8`, `UInt16`, `UInt32`, and `UInt64`, the result is exact and matches
[`isPrime`](/reference/functions/regular-functions/math-functions#isPrime). The `rounds` argument is ignored.

For `UInt128` and `UInt256`, a return value of `1` is probabilistic. The optional `rounds` argument controls
how many [Miller-Rabin](https://en.wikipedia.org/wiki/Miller-Rabin_primality_test) rounds are used:
more rounds reduce the chance of a false positive and increase the running time. With uniformly random
witnesses, the false-positive rate for a fixed composite is bounded by `4^(-rounds)`; the default of `25`
keeps this bound below `10^-15`, and the maximum of `256` keeps it below `10^-154`.

The function is deterministic: witnesses are seeded from `n`, so the same `(n, rounds)` pair always produces
the same result. The `4^(-rounds)` bound is the per-input probability under uniformly random witnesses;
with our deterministic seeding it instead describes a fraction over inputs — a composite that fools its
witness sequence will reproducibly return `1`.

**Syntax**

```sql theme={null}
isProbablePrime(n[, rounds])
```

**Arguments**

* `n` — Unsigned integer to test for primality. [`UInt8`](/reference/data-types/int-uint) or [`UInt16`](/reference/data-types/int-uint) or [`UInt32`](/reference/data-types/int-uint) or [`UInt64`](/reference/data-types/int-uint) or [`UInt128`](/reference/data-types/int-uint) or [`UInt256`](/reference/data-types/int-uint)
* `rounds` — Optional positive integer constant in `[1, 256]`. Number of Miller-Rabin rounds for `UInt128`/`UInt256` (ignored for narrower types). Default `25`. [`UInt8`](/reference/data-types/int-uint) or [`UInt16`](/reference/data-types/int-uint) or [`UInt32`](/reference/data-types/int-uint) or [`UInt64`](/reference/data-types/int-uint)

**Returned value**

Returns `1` if `n` is probably prime, `0` if it is definitely composite. [`UInt8`](/reference/data-types/int-uint)

**Examples**

**Small prime**

```sql title=Query theme={null}
SELECT isProbablePrime(17)
```

```response title=Response theme={null}
1
```

**Small composite**

```sql title=Query theme={null}
SELECT isProbablePrime(18)
```

```response title=Response theme={null}
0
```

**Largest `UInt64` prime (exact result)**

```sql title=Query theme={null}
SELECT isProbablePrime(18446744073709551557)
```

```response title=Response theme={null}
1
```

**Mersenne prime `M_127` (`UInt128`)**

```sql title=Query theme={null}
SELECT isProbablePrime(toUInt128('170141183460469231731687303715884105727'))
```

```response title=Response theme={null}
1
```

**Curve25519 base field prime `2^255 - 19` (`UInt256`)**

```sql title=Query theme={null}
SELECT isProbablePrime(toUInt256('57896044618658097711785492504343953926634992332820282019728792003956564819949'))
```

```response title=Response theme={null}
1
```

**Faster, lower-confidence check: 5 rounds**

```sql title=Query theme={null}
SELECT isProbablePrime(toUInt256('57896044618658097711785492504343953926634992332820282019728792003956564819949'), 5)
```

```response title=Response theme={null}
1
```

<h2 id="lgamma">
  lgamma
</h2>

Introduced in: v1.1.0

Returns the logarithm of the gamma function.

**Syntax**

```sql theme={null}
lgamma(x)
```

**Arguments**

* `x` — The number for which to compute the logarithm of the gamma function. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the logarithm of the gamma function of `x`. [`Float*`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT lgamma(5);
```

```response title=Response theme={null}
3.1780538303479458
```

<h2 id="log">
  log
</h2>

Introduced in: v1.1.0

Returns the natural logarithm of the argument.

**Syntax**

```sql theme={null}
log(x)
```

**Aliases**: `ln`

**Arguments**

* `x` — The number for which to compute the natural logarithm of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the natural logarithm of `x`. [`Float*`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT log(10);
```

```response title=Response theme={null}
2.302585092994046
```

<h2 id="log10">
  log10
</h2>

Introduced in: v1.1.0

Returns the decimal logarithm of the argument.

**Syntax**

```sql theme={null}
log10(x)
```

**Arguments**

* `x` — Number for which to compute the decimal logarithm of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the decimal logarithm of `x`. [`Float*`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT log10(100);
```

```response title=Response theme={null}
2
```

<h2 id="log1p">
  log1p
</h2>

Introduced in: v20.12.0

Calculates log(1+x).
The calculation log1p(x) is more accurate than log(1+x) for small values of `x`.

**Syntax**

```sql theme={null}
log1p(x)
```

**Arguments**

* `x` — Values from the interval: `-1 < x < +∞`. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns values from the interval: -∞ \< log1p(x) \< +∞ [`Float64`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT log1p(0)
```

```response title=Response theme={null}
0
```

<h2 id="log2">
  log2
</h2>

Introduced in: v1.1.0

Returns the binary logarithm of the argument.

**Syntax**

```sql theme={null}
log2(x)
```

**Arguments**

* `x` — The number for which to compute the binary logarithm of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the binary logarithm of `x`. [`Float*`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT log2(8);
```

```response title=Response theme={null}
3
```

<h2 id="pi">
  pi
</h2>

Introduced in: v1.1.0

Returns pi (π).

**Syntax**

```sql theme={null}
pi()
```

**Arguments**

* None.

**Returned value**

Returns pi [`Float64`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT pi();
```

```response title=Response theme={null}
3.141592653589793
```

<h2 id="pow">
  pow
</h2>

Introduced in: v1.1.0

Returns x raised to the power of y.

**Syntax**

```sql theme={null}
pow(x, y)
```

**Aliases**: `power`

**Arguments**

* `x` — The base. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)
* `y` — The exponent. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns x^y [`Float64`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT pow(2, 3);
```

```response title=Response theme={null}
8
```

<h2 id="proportionsZTest">
  proportionsZTest
</h2>

Introduced in: v22.3.0

Returns test statistics for the two proportion Z-test - a statistical test for comparing the proportions from two populations x and y.
The function supports both pooled and unpooled estimation methods for the standard error.
In the pooled version, the two proportions are averaged and only one proportion is used to estimate the standard error.
In the unpooled version, the two proportions are used separately.

**Syntax**

```sql theme={null}
proportionsZTest(successes_x, successes_y, trials_x, trials_y, conf_level, pool_type)
```

**Arguments**

* `successes_x` — Number of successes in population x. [`UInt64`](/reference/data-types/int-uint)
* `successes_y` — Number of successes in population y. [`UInt64`](/reference/data-types/int-uint)
* `trials_x` — Number of trials in population x. [`UInt64`](/reference/data-types/int-uint)
* `trials_y` — Number of trials in population y. [`UInt64`](/reference/data-types/int-uint)
* `conf_level` — Confidence level for the test. [`Float64`](/reference/data-types/float)
* `pool_type` — Selection of pooling method for standard error estimation. Can be either 'unpooled' or 'pooled'. [`String`](/reference/data-types/string)

**Returned value**

Returns a tuple containing: `z_stat` (Z statistic), `p_val` (P value), `ci_low` (lower confidence interval), `ci_high` (upper confidence interval). [`Tuple(Float64, Float64, Float64, Float64)`](/reference/data-types/tuple)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled');
```

```response title=Response theme={null}
┌─proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled')───────────────────────────────┐
│ (-0.20656724435948853,0.8363478437079654,-0.09345975390115283,0.07563797172293502) │
└────────────────────────────────────────────────────────────────────────────────────┘
```

<h2 id="radians">
  radians
</h2>

Introduced in: v22.2.0

Converts degrees to radians.

**Syntax**

```sql theme={null}
radians(x)
```

**Arguments**

* `x` — Input in degrees. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns value in radians [`Float64`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT radians(180)
```

```response title=Response theme={null}
3.141592653589793
```

<h2 id="sigmoid">
  sigmoid
</h2>

Introduced in: v20.1.0

Calculates the sigmoid function: `1 / (1 + exp(-x))`. The sigmoid function maps any real number to the range (0, 1) and is commonly used in machine learning.

**Syntax**

```sql theme={null}
sigmoid(x)
```

**Arguments**

* `x` — The input value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float)

**Returned value**

Returns the sigmoid of the input value, in the range (0, 1). [`Float64`](/reference/data-types/float)

**Examples**

**Basic usage**

```sql title=Query theme={null}
SELECT sigmoid(0)
```

```response title=Response theme={null}
0.5
```

<h2 id="sign">
  sign
</h2>

Introduced in: v21.2.0

Returns the sign of a real number.

**Syntax**

```sql theme={null}
sign(x)
```

**Arguments**

* `x` — Values from -∞ to +∞. [`(U)Int*`](/reference/data-types/int-uint) or [`Decimal*`](/reference/data-types/decimal) or [`Float*`](/reference/data-types/float)

**Returned value**

Returns `-1` for `x < 0`, `0` for `x = 0`, `1` for `x > 0`. [`Int8`](/reference/data-types/int-uint)

**Examples**

**Sign for zero**

```sql title=Query theme={null}
SELECT sign(0)
```

```response title=Response theme={null}
0
```

**Sign for positive**

```sql title=Query theme={null}
SELECT sign(1)
```

```response title=Response theme={null}
1
```

**Sign for negative**

```sql title=Query theme={null}
SELECT sign(-1)
```

```response title=Response theme={null}
-1
```

<h2 id="sin">
  sin
</h2>

Introduced in: v1.1.0

Returns the sine of the argument.

**Syntax**

```sql theme={null}
sin(x)
```

**Arguments**

* `x` — The number whose sine will be returned. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the sine of x.

**Examples**

**simple**

```sql title=Query theme={null}
SELECT sin(1.23)
```

```response title=Response theme={null}
0.9424888019316975
```

<h2 id="sinh">
  sinh
</h2>

Introduced in: v20.12.0

Returns the hyperbolic sine.

**Syntax**

```sql theme={null}
sinh(x)
```

**Arguments**

* `x` — The angle, in radians. Values from the interval: -∞ \< x \< +∞. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns values from the interval: -∞ \< sinh(x) \< +∞ [`Float64`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT sinh(0)
```

```response title=Response theme={null}
0
```

<h2 id="sqrt">
  sqrt
</h2>

Introduced in: v1.1.0

Returns the square root of the argument.

**Syntax**

```sql theme={null}
sqrt(x)
```

**Arguments**

* `x` — The number for which to find the square root of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the square root of x [`Float*`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT sqrt(16);
```

```response title=Response theme={null}
4
```

<h2 id="tan">
  tan
</h2>

Introduced in: v1.1.0

Returns the tangent of the argument.

**Syntax**

```sql theme={null}
tan(x)
```

**Arguments**

* `x` — The angle in radians. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the tangent of `x`. [`Float*`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT tan(0);
```

```response title=Response theme={null}
0
```

<h2 id="tanh">
  tanh
</h2>

Introduced in: v20.1.0

Returns the hyperbolic tangent.

**Syntax**

```sql theme={null}
tanh(x)
```

**Arguments**

* `x` — The angle in radians. Values from the interval: -∞ \< x \< +∞. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns values from the interval: -1 \< tanh(x) \< 1 [`Float*`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT tanh(0)
```

```response title=Response theme={null}
0
```

<h2 id="tgamma">
  tgamma
</h2>

Introduced in: v1.1.0

Returns the gamma function.

**Syntax**

```sql theme={null}
tgamma(x)
```

**Arguments**

* `x` — The number for which to compute the gamma function of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal)

**Returned value**

Returns the gamma function value [`Float*`](/reference/data-types/float)

**Examples**

**Usage example**

```sql title=Query theme={null}
SELECT tgamma(5);
```

```response title=Response theme={null}
24
```

<h2 id="widthBucket">
  widthBucket
</h2>

Introduced in: v23.3.0

Returns the number of the bucket in which parameter `operand` falls in a histogram having count equal-width buckets spanning the range `low` to `high`. Returns 0 if `operand` is less than `low`, and returns `count`+1 if `operand` is greater than or equal to `high`.
There is also a case insensitive alias called `WIDTH_BUCKET` to provide compatibility with other databases.

**Syntax**

```sql theme={null}
widthBucket(operand, low, high, count)
```

**Aliases**: `width_bucket`

**Arguments**

* `operand` — The value for which to determine the bucket. [`(U)Int8/16/32/64`](/reference/data-types/int-uint)
* `low` — The lower bound of the histogram range. [`(U)Int8/16/32/64`](/reference/data-types/int-uint)
* `high` — The upper bound of the histogram range. [`(U)Int8/16/32/64`](/reference/data-types/int-uint)
* `count` — The number of equal-width buckets. Cannot be zero. [`UInt8/16/32/64`](/reference/data-types/int-uint)

**Returned value**

Returns the bucket number as an integer. Returns 0 if operand \< low, returns count+1 if operand >= high. [`UInt8/16/32/64`](/reference/data-types/int-uint)

**Examples**

**Usage example**

```sql title=Query theme={null}
widthBucket(10.15, -8.6, 23, 18)
```

```response title=Response theme={null}
11
```
