@@ -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)
13061310FROM (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)
15791643FROM (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