Skip to content

Commit a72e6f8

Browse files
committed
document kurtosis and skewness
Signed-off-by: Bruno Calza <brunoangelicalza@gmail.com>
1 parent d7a69f4 commit a72e6f8

1 file changed

Lines changed: 124 additions & 0 deletions

File tree

documentation/query/functions/aggregation.md

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,11 @@ calculations. Functions are organized by category below.
3838
| [corr](#corr) | Pearson correlation coefficient |
3939
| [covar_pop](#covar_pop) | Population covariance |
4040
| [covar_samp](#covar_samp) | Sample covariance |
41+
| [kurtosis / kurtosis_samp](#kurtosis--kurtosis_samp) | Sample excess kurtosis |
42+
| [kurtosis_pop](#kurtosis_pop) | Population excess kurtosis |
4143
| [mode](#mode) | Most frequent value |
44+
| [skewness / skewness_samp](#skewness--skewness_samp) | Sample skewness |
45+
| [skewness_pop](#skewness_pop) | Population skewness |
4246
| [stddev / stddev_samp](#stddev--stddev_samp) | Sample standard deviation |
4347
| [stddev_pop](#stddev_pop) | Population standard deviation |
4448
| [var_pop](#var_pop) | Population variance |
@@ -1306,6 +1310,66 @@ SELECT ksum(a)
13061310
FROM (SELECT rnd_double() a FROM long_sequence(100));
13071311
```
13081312

1313+
## kurtosis / kurtosis_samp
1314+
1315+
`kurtosis_samp(value)` - Calculates the sample excess kurtosis of a set of
1316+
values, ignoring missing data (e.g., NULL values). Kurtosis measures the
1317+
tailedness of a distribution. Following Fisher's definition, the value is
1318+
shifted so that a normal distribution has kurtosis 0: positive values indicate
1319+
heavier tails than the normal distribution, negative values indicate lighter
1320+
tails. The sample variant applies the Fisher-Pearson bias correction and returns
1321+
`null` when fewer than four non-null values are present.
1322+
1323+
`kurtosis` is an alias for `kurtosis_samp`.
1324+
1325+
#### Parameters
1326+
1327+
- `value` is any numeric value.
1328+
1329+
#### Return value
1330+
1331+
Return value type is `double`. Returns `null` when fewer than four non-null
1332+
values are observed, or when all observed values are equal.
1333+
1334+
#### Examples
1335+
1336+
```questdb-sql demo title="Sample excess kurtosis"
1337+
SELECT kurtosis_samp(value)
1338+
FROM UNNEST(ARRAY[-10.0, -20.0, 100.0, 1000.0, 1000.0]);
1339+
```
1340+
1341+
| kurtosis_samp |
1342+
| :----------------- |
1343+
| -3.289971233898511 |
1344+
1345+
## kurtosis_pop
1346+
1347+
`kurtosis_pop(value)` - Calculates the population excess kurtosis of a set of
1348+
values, ignoring missing data (e.g., NULL values). Like `kurtosis_samp` this
1349+
follows Fisher's definition (a normal distribution has kurtosis 0), but applies
1350+
no bias correction. Defined when at least one non-null value is observed and the
1351+
values are not all equal; otherwise returns `null`.
1352+
1353+
#### Parameters
1354+
1355+
- `value` is any numeric value.
1356+
1357+
#### Return value
1358+
1359+
Return value type is `double`. Returns `null` when no non-null values are
1360+
observed, or when all observed values are equal.
1361+
1362+
#### Examples
1363+
1364+
```questdb-sql demo title="Population excess kurtosis"
1365+
SELECT kurtosis_pop(value)
1366+
FROM UNNEST(ARRAY[-10.0, -20.0, 100.0, 1000.0, 1000.0]);
1367+
```
1368+
1369+
| kurtosis_pop |
1370+
| :----------------- |
1371+
| -1.822492808474628 |
1372+
13091373
## last
13101374

13111375
- `last(column_name)` - returns the last value of a column.
@@ -1579,6 +1643,66 @@ SELECT nsum(a)
15791643
FROM (SELECT rnd_double() a FROM long_sequence(100));
15801644
```
15811645

1646+
## skewness / skewness_samp
1647+
1648+
`skewness_samp(value)` - Calculates the sample skewness of a set of values,
1649+
ignoring missing data (e.g., NULL values). Skewness measures the asymmetry of a
1650+
distribution around its mean: positive values indicate a right-leaning (longer
1651+
right tail) distribution, negative values indicate a left-leaning one, and zero
1652+
indicates a symmetric distribution. The sample variant uses the Fisher-Pearson
1653+
bias-corrected G1 estimator and returns `null` when fewer than three non-null
1654+
values are present.
1655+
1656+
`skewness` is an alias for `skewness_samp`.
1657+
1658+
#### Parameters
1659+
1660+
- `value` is any numeric value.
1661+
1662+
#### Return value
1663+
1664+
Return value type is `double`. Returns `null` when fewer than three non-null
1665+
values are observed, or when all observed values are equal.
1666+
1667+
#### Examples
1668+
1669+
```questdb-sql demo title="Sample skewness"
1670+
SELECT skewness_samp(value)
1671+
FROM UNNEST(ARRAY[-10.0, -20.0, 100.0, 1000.0, 1000.0]);
1672+
```
1673+
1674+
| skewness_samp |
1675+
| :----------------- |
1676+
| 0.5745116147533554 |
1677+
1678+
## skewness_pop
1679+
1680+
`skewness_pop(value)` - Calculates the population skewness of a set of values,
1681+
ignoring missing data (e.g., NULL values). Like `skewness_samp` this uses
1682+
Fisher's moment-ratio definition, but applies no bias correction. Defined when
1683+
at least one non-null value is observed and the values are not all equal;
1684+
otherwise returns `null`.
1685+
1686+
#### Parameters
1687+
1688+
- `value` is any numeric value.
1689+
1690+
#### Return value
1691+
1692+
Return value type is `double`. Returns `null` when no non-null values are
1693+
observed, or when all observed values are equal.
1694+
1695+
#### Examples
1696+
1697+
```questdb-sql demo title="Population skewness"
1698+
SELECT skewness_pop(value)
1699+
FROM UNNEST(ARRAY[-10.0, -20.0, 100.0, 1000.0, 1000.0]);
1700+
```
1701+
1702+
| skewness_pop |
1703+
| :------------------ |
1704+
| 0.38539410733550217 |
1705+
15821706
## stddev / stddev_samp
15831707

15841708
`stddev_samp(value)` - Calculates the sample standard deviation of a set of

0 commit comments

Comments
 (0)