2020-04-03 13:23:32 +00:00
---
2022-08-28 14:53:34 +00:00
slug: /en/sql-reference/functions/math-functions
2023-04-19 17:05:55 +00:00
sidebar_position: 125
2022-04-09 13:29:05 +00:00
sidebar_label: Mathematical
2020-04-03 13:23:32 +00:00
---
2022-06-02 10:55:18 +00:00
# Mathematical Functions
2017-12-28 15:13:23 +00:00
2023-04-19 20:33:39 +00:00
## e
2017-12-28 15:13:23 +00:00
2024-06-13 06:51:29 +00:00
Returns $e$ ([Euler's constant](https://en.wikipedia.org/wiki/Euler%27s_constant)).
2017-04-03 19:49:50 +00:00
2023-04-19 20:33:39 +00:00
**Syntax**
```sql
e()
```
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float64 ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## pi
2024-06-13 06:51:29 +00:00
Returns $\pi$ ([Pi](https://en.wikipedia.org/wiki/Pi)).
2023-04-19 20:33:39 +00:00
**Syntax**
```sql
pi()
```
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float64 ](../data-types/float.md ).
2023-04-19 20:33:39 +00:00
## exp
2024-06-13 06:51:29 +00:00
Returns $e^{x}$, where x is the given argument to the function.
2023-04-19 20:33:39 +00:00
**Syntax**
```sql
exp(x)
```
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
2024-06-13 06:51:29 +00:00
**Example**
Query:
```sql
SELECT round(exp(-1), 4);
```
Result:
```response
┌─round(exp(-1), 4)─┐
│ 0.3679 │
└───────────────────┘
```
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## log
Returns the natural logarithm of the argument.
**Syntax**
```sql
log(x)
```
Alias: `ln(x)`
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## exp2
2023-06-02 11:30:05 +00:00
Returns 2 to the power of the given argument
2023-04-19 20:33:39 +00:00
**Syntax**
```sql
exp2(x)
```
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## intExp2
2017-12-28 15:13:23 +00:00
2024-06-13 06:51:29 +00:00
Like [`exp` ](#exp ) but returns a UInt64.
2017-04-03 19:49:50 +00:00
2023-04-19 20:33:39 +00:00
**Syntax**
2017-12-28 15:13:23 +00:00
2023-04-19 20:33:39 +00:00
```sql
intExp2(x)
```
2017-04-03 19:49:50 +00:00
2023-04-19 20:33:39 +00:00
## log2
2017-12-28 15:13:23 +00:00
2023-04-19 20:33:39 +00:00
Returns the binary logarithm of the argument.
2017-04-03 19:49:50 +00:00
2023-04-19 20:33:39 +00:00
**Syntax**
2017-12-28 15:13:23 +00:00
2023-04-19 20:33:39 +00:00
```sql
log2(x)
```
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## exp10
2017-04-03 19:49:50 +00:00
2023-06-02 13:27:56 +00:00
Returns 10 to the power of the given argument.
2023-04-19 20:33:39 +00:00
**Syntax**
2017-12-28 15:13:23 +00:00
2023-04-19 20:33:39 +00:00
```sql
exp10(x)
```
2017-04-03 19:49:50 +00:00
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## intExp10
2017-12-28 15:13:23 +00:00
2024-06-13 06:51:29 +00:00
Like [`exp10` ](#exp10 ) but returns a UInt64.
2017-04-03 19:49:50 +00:00
2023-04-19 20:33:39 +00:00
**Syntax**
2017-12-28 15:13:23 +00:00
2023-04-19 20:33:39 +00:00
```sql
intExp10(x)
```
2017-04-03 19:49:50 +00:00
2023-04-19 20:33:39 +00:00
## log10
2017-12-28 15:13:23 +00:00
2023-04-19 20:33:39 +00:00
Returns the decimal logarithm of the argument.
2017-04-03 19:49:50 +00:00
2023-04-19 20:33:39 +00:00
**Syntax**
2017-12-28 15:13:23 +00:00
2023-04-19 20:33:39 +00:00
```sql
log10(x)
```
2017-04-03 19:49:50 +00:00
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## sqrt
2017-04-03 19:49:50 +00:00
2023-04-19 20:33:39 +00:00
Returns the square root of the argument.
```sql
sqrt(x)
```
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## cbrt
Returns the cubic root of the argument.
```sql
cbrt(x)
```
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## erf
2024-06-13 06:51:29 +00:00
If `x` is non-negative, then $erf(\frac{x}{\sigma\sqrt{2}})$ is the probability that a random variable having a normal distribution with standard deviation $\sigma$ takes the value that is separated from the expected value by more than `x` .
2023-04-19 20:33:39 +00:00
**Syntax**
```sql
erf(x)
```
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
**Example**
2017-04-03 19:49:50 +00:00
2023-04-19 20:33:39 +00:00
(three sigma rule)
2017-04-03 19:49:50 +00:00
2020-03-20 10:10:48 +00:00
``` sql
2021-03-13 18:18:45 +00:00
SELECT erf(3 / sqrt(2));
2017-12-28 15:13:23 +00:00
```
2017-04-03 19:49:50 +00:00
2023-04-19 20:33:39 +00:00
```result
2017-12-28 15:13:23 +00:00
┌─erf(divide(3, sqrt(2)))─┐
│ 0.9973002039367398 │
└─────────────────────────┘
```
2017-06-13 04:15:47 +00:00
2023-04-19 20:33:39 +00:00
## erfc
2017-06-13 04:15:47 +00:00
2024-06-13 06:51:29 +00:00
Returns a number close to $1-erf(x)$ without loss of precision for large `x` values.
2017-04-03 19:49:50 +00:00
2023-04-19 20:33:39 +00:00
**Syntax**
2017-12-28 15:13:23 +00:00
2023-04-19 20:33:39 +00:00
```sql
erfc(x)
```
2017-04-03 19:49:50 +00:00
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## lgamma
2017-12-28 15:13:23 +00:00
2023-04-19 20:33:39 +00:00
Returns the logarithm of the gamma function.
2017-04-03 19:49:50 +00:00
2023-04-19 20:33:39 +00:00
**Syntax**
2017-12-28 15:13:23 +00:00
2023-04-19 20:33:39 +00:00
```sql
lgamma(x)
```
2017-04-03 19:49:50 +00:00
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## tgamma
2017-12-28 15:13:23 +00:00
2023-04-19 20:33:39 +00:00
Returns the gamma function.
2017-04-03 19:49:50 +00:00
2023-04-19 20:33:39 +00:00
**Syntax**
2017-12-28 15:13:23 +00:00
2023-04-19 20:33:39 +00:00
```sql
gamma(x)
```
2017-04-03 19:49:50 +00:00
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## sin
2017-12-28 15:13:23 +00:00
2023-04-19 20:33:39 +00:00
Returns the sine of the argument
2017-12-28 15:13:23 +00:00
2023-04-19 20:33:39 +00:00
**Syntax**
2017-04-03 19:49:50 +00:00
2023-04-19 20:33:39 +00:00
```sql
sin(x)
```
2017-04-03 19:49:50 +00:00
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2024-03-05 17:01:54 +00:00
**Example**
Query:
```sql
SELECT sin(1.23);
```
```response
0.9424888019316975
```
2023-04-19 20:33:39 +00:00
## cos
2017-12-28 15:13:23 +00:00
2023-04-19 20:33:39 +00:00
Returns the cosine of the argument.
2017-04-03 19:49:50 +00:00
2023-04-19 20:33:39 +00:00
**Syntax**
2017-12-28 15:13:23 +00:00
2023-04-19 20:33:39 +00:00
```sql
cos(x)
```
2018-10-16 10:47:17 +00:00
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## tan
2019-01-30 10:39:46 +00:00
2023-04-19 20:33:39 +00:00
Returns the tangent of the argument.
2019-01-30 10:39:46 +00:00
2023-04-19 20:33:39 +00:00
**Syntax**
2019-01-30 10:39:46 +00:00
2023-04-19 20:33:39 +00:00
```sql
tan(x)
```
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## asin
Returns the arc sine of the argument.
**Syntax**
```sql
asin(x)
```
2019-01-30 10:39:46 +00:00
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## acos
2020-12-01 19:25:57 +00:00
2023-04-19 20:33:39 +00:00
Returns the arc cosine of the argument.
**Syntax**
```sql
acos(x)
```
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## atan
Returns the arc tangent of the argument.
**Syntax**
```sql
atan(x)
```
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` - [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## pow
2024-06-13 06:51:29 +00:00
Returns $x^y$.
2023-04-19 20:33:39 +00:00
**Syntax**
```sql
pow(x, y)
```
Alias: `power(x, y)`
2023-11-24 14:31:39 +00:00
**Arguments**
2024-05-29 13:46:57 +00:00
- `x` - [(U)Int8/16/32/64 ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md )
- `y` - [(U)Int8/16/32/64 ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md )
2023-11-24 14:31:39 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
Type: [Float64 ](../data-types/float.md ).
2023-11-24 14:31:39 +00:00
2023-04-19 20:33:39 +00:00
## cosh
Returns the [hyperbolic cosine ](https://in.mathworks.com/help/matlab/ref/cosh.html ) of the argument.
2020-12-01 19:25:57 +00:00
**Syntax**
``` sql
cosh(x)
```
2021-02-15 21:22:10 +00:00
**Arguments**
2020-12-01 19:25:57 +00:00
2024-06-13 06:51:29 +00:00
- `x` — The angle, in radians. Values from the interval: $-\infty \lt x \lt +\infty$. [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2020-12-01 19:25:57 +00:00
**Returned value**
2024-06-13 06:51:29 +00:00
- Values from the interval: $1 \le cosh(x) \lt +\infty$.
2020-12-01 19:25:57 +00:00
2024-05-24 03:54:16 +00:00
Type: [Float64 ](../data-types/float.md#float32-float64 ).
2020-12-01 19:25:57 +00:00
**Example**
``` sql
SELECT cosh(0);
```
Result:
2023-04-19 20:33:39 +00:00
```result
2020-12-01 19:25:57 +00:00
┌─cosh(0)──┐
│ 1 │
└──────────┘
```
2023-04-19 20:33:39 +00:00
## acosh
2020-12-01 19:25:57 +00:00
2023-04-19 20:33:39 +00:00
Returns the [inverse hyperbolic cosine ](https://www.mathworks.com/help/matlab/ref/acosh.html ).
2020-12-01 19:25:57 +00:00
**Syntax**
``` sql
acosh(x)
```
2021-02-15 21:22:10 +00:00
**Arguments**
2020-12-01 19:25:57 +00:00
2024-06-13 06:51:29 +00:00
- `x` — Hyperbolic cosine of angle. Values from the interval: $1 \le x \lt +\infty$. [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2020-12-01 19:25:57 +00:00
**Returned value**
2024-06-13 06:51:29 +00:00
- The angle, in radians. Values from the interval: $0 \le acosh(x) \lt +\infty$.
2020-12-01 19:25:57 +00:00
2024-05-24 03:54:16 +00:00
Type: [Float64 ](../data-types/float.md#float32-float64 ).
2020-12-01 19:25:57 +00:00
**Example**
``` sql
SELECT acosh(1);
```
Result:
2023-04-19 20:33:39 +00:00
```result
2020-12-01 19:25:57 +00:00
┌─acosh(1)─┐
│ 0 │
└──────────┘
```
2023-04-19 20:33:39 +00:00
## sinh
2020-12-01 19:25:57 +00:00
2023-04-19 20:33:39 +00:00
Returns the [hyperbolic sine ](https://www.mathworks.com/help/matlab/ref/sinh.html ).
2020-12-01 19:25:57 +00:00
**Syntax**
``` sql
sinh(x)
```
2021-02-15 21:22:10 +00:00
**Arguments**
2020-12-01 19:25:57 +00:00
2024-06-13 06:51:29 +00:00
- `x` — The angle, in radians. Values from the interval: $-\infty \lt x \lt +\infty$. [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2020-12-01 19:25:57 +00:00
**Returned value**
2024-06-13 06:51:29 +00:00
- Values from the interval: $-\infty \lt sinh(x) \lt +\infty$.
2020-12-01 19:25:57 +00:00
2024-05-24 03:54:16 +00:00
Type: [Float64 ](../data-types/float.md#float32-float64 ).
2020-12-01 19:25:57 +00:00
**Example**
``` sql
SELECT sinh(0);
```
Result:
2023-04-19 20:33:39 +00:00
```result
2020-12-01 19:25:57 +00:00
┌─sinh(0)──┐
│ 0 │
└──────────┘
```
2023-04-19 20:33:39 +00:00
## asinh
2020-12-01 19:25:57 +00:00
2023-04-19 20:33:39 +00:00
Returns the [inverse hyperbolic sine ](https://www.mathworks.com/help/matlab/ref/asinh.html ).
2020-12-01 19:25:57 +00:00
**Syntax**
``` sql
asinh(x)
```
2021-02-15 21:22:10 +00:00
**Arguments**
2020-12-01 19:25:57 +00:00
2024-06-13 06:51:29 +00:00
- `x` — Hyperbolic sine of angle. Values from the interval: $-\infty \lt x \lt +\infty$. [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2020-12-01 19:25:57 +00:00
**Returned value**
2024-06-13 06:51:29 +00:00
- The angle, in radians. Values from the interval: $-\infty \lt asinh(x) \lt +\infty$.
2020-12-01 19:25:57 +00:00
2024-05-24 03:54:16 +00:00
Type: [Float64 ](../data-types/float.md#float32-float64 ).
2020-12-01 19:25:57 +00:00
**Example**
``` sql
SELECT asinh(0);
```
Result:
2023-04-19 20:33:39 +00:00
```result
2020-12-01 19:25:57 +00:00
┌─asinh(0)─┐
│ 0 │
└──────────┘
```
2024-04-12 14:25:23 +00:00
## tanh
Returns the [hyperbolic tangent ](https://www.mathworks.com/help/matlab/ref/tanh.html ).
**Syntax**
``` sql
tanh(x)
```
**Arguments**
2024-06-13 06:51:29 +00:00
- `x` — The angle, in radians. Values from the interval: $-\infty \lt x \lt +\infty$. [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2024-04-12 14:25:23 +00:00
**Returned value**
2024-06-13 06:51:29 +00:00
- Values from the interval: $-1 \lt tanh(x) \lt 1$.
2024-04-12 14:25:23 +00:00
2024-05-24 03:54:16 +00:00
Type: [Float* ](../data-types/float.md#float32-float64 ).
2024-04-12 14:25:23 +00:00
**Example**
``` sql
SELECT tanh(0);
```
Result:
```result
0
```
2020-12-01 19:25:57 +00:00
2023-04-19 20:33:39 +00:00
## atanh
2020-12-01 19:25:57 +00:00
2023-04-19 20:33:39 +00:00
Returns the [inverse hyperbolic tangent ](https://www.mathworks.com/help/matlab/ref/atanh.html ).
2020-12-01 19:25:57 +00:00
**Syntax**
``` sql
atanh(x)
```
2021-02-15 21:22:10 +00:00
**Arguments**
2020-12-01 19:25:57 +00:00
2024-06-13 06:51:29 +00:00
- `x` — Hyperbolic tangent of angle. Values from the interval: $-1 \lt x \lt 1$. [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2020-12-01 19:25:57 +00:00
**Returned value**
2024-06-13 06:51:29 +00:00
- The angle, in radians. Values from the interval: $-\infty \lt atanh(x) \lt +\infty$.
2020-12-01 19:25:57 +00:00
2024-05-24 03:54:16 +00:00
Type: [Float64 ](../data-types/float.md#float32-float64 ).
2020-12-01 19:25:57 +00:00
**Example**
``` sql
SELECT atanh(0);
```
Result:
2023-04-19 20:33:39 +00:00
```result
2020-12-01 19:25:57 +00:00
┌─atanh(0)─┐
│ 0 │
└──────────┘
```
2023-04-19 20:33:39 +00:00
## atan2
2020-12-01 19:25:57 +00:00
2023-04-19 20:33:39 +00:00
Returns the [atan2 ](https://en.wikipedia.org/wiki/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)` .
2020-12-01 19:25:57 +00:00
**Syntax**
``` sql
atan2(y, x)
```
2021-02-15 21:22:10 +00:00
**Arguments**
2020-12-01 19:25:57 +00:00
2024-05-29 13:46:57 +00:00
- `y` — y-coordinate of the point through which the ray passes. [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
- `x` — x-coordinate of the point through which the ray passes. [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2020-12-01 19:25:57 +00:00
**Returned value**
2024-06-13 06:51:29 +00:00
- The angle `θ` such that $-\pi \lt 0 \le \pi$, in radians.
2020-12-01 19:25:57 +00:00
2024-05-24 03:54:16 +00:00
Type: [Float64 ](../data-types/float.md#float32-float64 ).
2020-12-01 19:25:57 +00:00
**Example**
``` sql
SELECT atan2(1, 1);
```
Result:
2023-04-19 20:33:39 +00:00
```result
2020-12-01 19:25:57 +00:00
┌────────atan2(1, 1)─┐
│ 0.7853981633974483 │
└────────────────────┘
```
2023-04-19 20:33:39 +00:00
## hypot
2020-12-01 19:25:57 +00:00
2023-04-19 20:33:39 +00:00
Returns the length of the hypotenuse of a right-angle triangle. [Hypot ](https://en.wikipedia.org/wiki/Hypot ) avoids problems that occur when squaring very large or very small numbers.
2020-12-01 19:25:57 +00:00
**Syntax**
``` sql
hypot(x, y)
```
2021-02-15 21:22:10 +00:00
**Arguments**
2020-12-01 19:25:57 +00:00
2024-05-29 13:46:57 +00:00
- `x` — The first cathetus of a right-angle triangle. [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
- `y` — The second cathetus of a right-angle triangle. [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2020-12-01 19:25:57 +00:00
**Returned value**
2023-04-19 15:55:29 +00:00
- The length of the hypotenuse of a right-angle triangle.
2020-12-01 19:25:57 +00:00
2024-05-24 03:54:16 +00:00
Type: [Float64 ](../data-types/float.md#float32-float64 ).
2020-12-01 19:25:57 +00:00
**Example**
``` sql
SELECT hypot(1, 1);
```
Result:
2023-04-19 20:33:39 +00:00
```result
2020-12-01 19:25:57 +00:00
┌────────hypot(1, 1)─┐
│ 1.4142135623730951 │
└────────────────────┘
```
2023-04-19 20:33:39 +00:00
## log1p
2020-12-01 19:25:57 +00:00
2023-04-19 20:33:39 +00:00
Calculates `log(1+x)` . The [calculation ](https://en.wikipedia.org/wiki/Natural_logarithm#lnp1 ) `log1p(x)` is more accurate than `log(1+x)` for small values of x.
2020-12-01 19:25:57 +00:00
**Syntax**
``` sql
log1p(x)
```
2021-02-15 21:22:10 +00:00
**Arguments**
2020-12-01 19:25:57 +00:00
2024-06-13 06:51:29 +00:00
- `x` — Values from the interval: $-1 \lt x \lt +\infty$. [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2020-12-01 19:25:57 +00:00
**Returned value**
2024-06-13 06:51:29 +00:00
- Values from the interval: $-\infty < log1p ( x ) \lt + \infty $.
2020-12-01 19:25:57 +00:00
2024-05-24 03:54:16 +00:00
Type: [Float64 ](../data-types/float.md#float32-float64 ).
2020-12-01 19:25:57 +00:00
**Example**
``` sql
SELECT log1p(0);
```
Result:
2023-04-19 20:33:39 +00:00
```result
2020-12-01 19:25:57 +00:00
┌─log1p(0)─┐
│ 0 │
└──────────┘
```
2023-04-19 20:33:39 +00:00
## sign
2021-01-24 09:15:47 +00:00
2021-03-12 02:12:28 +00:00
Returns the sign of a real number.
2021-01-24 09:15:47 +00:00
**Syntax**
``` sql
sign(x)
```
2021-02-15 21:22:10 +00:00
**Arguments**
2021-01-24 09:15:47 +00:00
2024-06-13 06:51:29 +00:00
- `x` — Values from $-\infty$ to $+\infty$. Supports all numeric types in ClickHouse.
2021-01-24 09:15:47 +00:00
**Returned value**
- -1 for `x < 0`
2023-04-19 16:10:51 +00:00
- 0 for `x = 0`
- 1 for `x > 0`
2021-01-24 09:15:47 +00:00
2024-05-24 03:54:16 +00:00
Type: [Int8 ](../data-types/int-uint.md ).
2024-04-22 11:48:28 +00:00
2021-03-06 11:13:14 +00:00
**Examples**
2021-01-24 09:15:47 +00:00
2021-03-06 11:13:14 +00:00
Sign for the zero value:
2021-01-24 09:15:47 +00:00
``` sql
SELECT sign(0);
```
Result:
2023-04-19 20:33:39 +00:00
```result
2021-01-24 09:15:47 +00:00
┌─sign(0)─┐
│ 0 │
└─────────┘
```
2021-03-06 11:13:14 +00:00
Sign for the positive value:
2021-01-24 09:15:47 +00:00
``` sql
SELECT sign(1);
```
Result:
2023-04-19 20:33:39 +00:00
```result
2021-01-24 09:15:47 +00:00
┌─sign(1)─┐
│ 1 │
└─────────┘
```
2021-03-06 11:13:14 +00:00
Sign for the negative value:
2021-01-24 09:15:47 +00:00
``` sql
SELECT sign(-1);
```
Result:
2023-04-19 20:33:39 +00:00
```result
2021-01-24 09:15:47 +00:00
┌─sign(-1)─┐
│ -1 │
└──────────┘
```
2024-05-06 14:20:51 +00:00
## sigmoid
Returns the [sigmoid function ](https://en.wikipedia.org/wiki/Sigmoid_function ).
**Syntax**
```sql
sigmoid(x)
```
**Parameters**
2024-06-13 06:51:29 +00:00
- `x` — input value. Values from the interval: $-\infty \lt x \lt +\infty$. [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2024-05-06 14:20:51 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
- Corresponding value along the sigmoid curve between 0 and 1. [Float64 ](../data-types/float.md ).
2024-05-06 14:20:51 +00:00
**Example**
Query:
``` sql
SELECT round(sigmoid(x), 5) FROM (SELECT arrayJoin([-1, 0, 1]) AS x);
```
Result:
```result
0.26894
0.5
0.73106
```
2021-01-24 09:15:47 +00:00
2023-04-19 20:33:39 +00:00
## degrees
2022-01-19 23:31:04 +00:00
2023-04-19 20:33:39 +00:00
Converts radians to degrees.
2022-01-19 23:31:04 +00:00
**Syntax**
``` sql
degrees(x)
```
**Arguments**
2024-05-29 13:46:57 +00:00
- `x` — Input in radians. [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2024-05-24 03:54:16 +00:00
- `x` — Input in radians. [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2022-01-19 23:31:04 +00:00
**Returned value**
2024-05-24 03:54:16 +00:00
- Value in degrees. [Float64 ](../data-types/float.md#float32-float64 ).
2022-01-19 23:31:04 +00:00
**Example**
``` sql
SELECT degrees(3.141592653589793);
```
Result:
2023-04-19 20:33:39 +00:00
```result
2022-01-19 23:31:04 +00:00
┌─degrees(3.141592653589793)─┐
│ 180 │
└────────────────────────────┘
```
2023-04-19 20:33:39 +00:00
## radians
2022-01-19 23:31:04 +00:00
2023-04-19 20:33:39 +00:00
Converts degrees to radians.
2022-01-19 23:31:04 +00:00
**Syntax**
``` sql
radians(x)
```
**Arguments**
2024-05-24 03:54:16 +00:00
- `x` — Input in degrees. [(U)Int* ](../data-types/int-uint.md ), [Float* ](../data-types/float.md ) or [Decimal* ](../data-types/decimal.md ).
2022-01-19 23:31:04 +00:00
**Returned value**
2023-04-19 15:55:29 +00:00
- Value in radians.
2022-01-19 23:31:04 +00:00
2024-05-24 03:54:16 +00:00
Type: [Float64 ](../data-types/float.md#float32-float64 ).
2022-01-19 23:31:04 +00:00
**Example**
``` sql
SELECT radians(180);
```
Result:
2023-04-19 20:33:39 +00:00
```result
2022-01-19 23:31:04 +00:00
┌──────radians(180)─┐
│ 3.141592653589793 │
└───────────────────┘
```
2022-11-10 08:03:11 +00:00
2023-04-19 20:33:39 +00:00
## factorial
2022-11-10 08:03:11 +00:00
2023-04-19 20:33:39 +00:00
Computes the factorial of an integer value. Works with any native integer type including UInt(8|16|32|64) and Int(8|16|32|64). The return type is UInt64.
2022-11-10 08:03:11 +00:00
2022-11-16 01:34:04 +00:00
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 exception throw.
2022-11-10 08:03:11 +00:00
**Syntax**
``` sql
factorial(n)
```
**Example**
``` sql
SELECT factorial(10);
```
Result:
2023-04-19 20:33:39 +00:00
```result
2022-11-10 08:03:11 +00:00
┌─factorial(10)─┐
│ 3628800 │
└───────────────┘
```
2023-02-24 00:05:40 +00:00
2023-04-19 20:33:39 +00:00
## width_bucket
2023-02-24 00:05:40 +00:00
Returns the number of the bucket in which `operand` falls in a histogram having `count` equal-width buckets spanning the range `low` to `high` . Returns `0` if `operand < low` , and returns `count+1` if `operand >= high` .
`operand` , `low` , `high` can be any native number type. `count` can only be unsigned native integer and its value cannot be zero.
2023-02-24 11:31:05 +00:00
**Syntax**
```sql
widthBucket(operand, low, high, count)
```
2023-04-19 20:33:39 +00:00
Alias: `WIDTH_BUCKET`
2023-02-24 11:31:05 +00:00
2023-02-24 00:05:40 +00:00
**Example**
``` sql
2023-02-24 11:31:05 +00:00
SELECT widthBucket(10.15, -8.6, 23, 18);
2023-02-24 00:05:40 +00:00
```
Result:
2023-04-19 20:33:39 +00:00
```result
2023-02-24 11:31:05 +00:00
┌─widthBucket(10.15, -8.6, 23, 18)─┐
│ 11 │
└──────────────────────────────────┘
2023-04-19 15:55:29 +00:00
```
2024-05-23 07:32:43 +00:00
## proportionsZTest
Returns test statistics for the two proportion Z-test - a statistical test for comparing the proportions from two populations `x` and `y` .
**Syntax**
```sql
proportionsZTest(successes_x, successes_y, trials_x, trials_y, conf_level, pool_type)
```
**Arguments**
- `successes_x` : Number of successes in population `x` . [UInt64 ](../data-types/int-uint.md ).
- `successes_y` : Number of successes in population `y` . [UInt64 ](../data-types/int-uint.md ).
- `trials_x` : Number of trials in population `x` . [UInt64 ](../data-types/int-uint.md ).
- `trials_y` : Number of trials in population `y` . [UInt64 ](../data-types/int-uint.md ).
- `conf_level` : Confidence level for the test. [Float64 ](../data-types/float.md ).
- `pool_type` : Selection of pooling (way in which the standard error is estimated). Can be either `unpooled` or `pooled` . [String ](../data-types/string.md ).
:::note
For argument `pool_type` : 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.
:::
**Returned value**
- `z_stat` : Z statistic. [Float64 ](../data-types/float.md ).
- `p_val` : P value. [Float64 ](../data-types/float.md ).
- `ci_low` : The lower confidence interval. [Float64 ](../data-types/float.md ).
- `ci_high` : The upper confidence interval. [Float64 ](../data-types/float.md ).
**Example**
Query:
```sql
SELECT proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled');
```
Result:
```response
┌─proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled')───────────────────────────────┐
│ (-0.20656724435948853,0.8363478437079654,-0.09345975390115283,0.07563797172293502) │
└────────────────────────────────────────────────────────────────────────────────────┘
```