Функция VARIANCE
возвращает дисперсию множества числовых значений.
<Значимое выражение>
в аргументе должно быть числовым типом данных или приводиться к нему.
Дисперсия вычисляется по формуле, представленной на рисунке 1
где x (i) – один из элементов множества x, n – число элементов, а ∑ – сумма, берется по всему множеству x.
При n=0
возвращается NULL-значение, при n=1
дисперсия считается равной 0
.
Тип данных результата:
DECIMAL
, если тип аргументов INT
, SMALLINT
, BIGINT
, DECIMAL
;
DOUBLE
, если тип аргументов REAL
, DOUBLE
.
Функция применяется к набору значений, полученных из аргумента путем исключения NULL-значений, т.е. записи с NULL-значением не учитываются при подсчете записей.
Если задана опция DISTINCT
, дубликаты из подсчета исключаются.
select variance( all age), variance( distinct age) from person; | 137.92212600 | 136.66666666 |