ДИСПЕРСИЯ
Синтаксис
VARIANCE(expr)
Описание
Возвращает дисперсию генеральной совокупности expr. Это расширение стандартного SQL. Вместо этого можно использовать стандартную SQL-функцию VAR_POP().
Дисперсия вычисляется следующим образом:
- вычисление среднего значения для набора
- для каждого числа вычитание среднего и возведение результата в квадрат
- вычисление среднего значения полученных разностей
Это агрегатная функция, поэтому может использоваться с предложением GROUP BY.
Функция VARIANCE() может использоваться как оконная функция.
Функция VARIANCE() возвращает NULL если не было совпадающих строк.
Примеры
CREATE TABLE v(i tinyint); INSERT INTO v VALUES(101),(99); SELECT VARIANCE(i) FROM v; +-------------+ | VARIANCE(i) | +-------------+ | 1.0000 | +-------------+ INSERT INTO v VALUES(120),(80); SELECT VARIANCE(i) FROM v; +-------------+ | VARIANCE(i) | +-------------+ | 200.5000 | +-------------+
В качестве агрегатной функции:
CREATE OR REPLACE TABLE stats (category VARCHAR(2), x INT);
INSERT INTO stats VALUES
('a',1),('a',2),('a',3),
('b',11),('b',12),('b',20),('b',30),('b',60);
SELECT category, STDDEV_POP(x), STDDEV_SAMP(x), VAR_POP(x)
FROM stats GROUP BY category;
+----------+---------------+----------------+------------+
| category | STDDEV_POP(x) | STDDEV_SAMP(x) | VAR_POP(x) |
+----------+---------------+----------------+------------+
| a | 0.8165 | 1.0000 | 0.6667 |
| b | 18.0400 | 20.1693 | 325.4400 |
+----------+---------------+----------------+------------+
В качестве оконной функции:
CREATE OR REPLACE TABLE student_test (name CHAR(10), test CHAR(10), score TINYINT);
INSERT INTO student_test VALUES
('Chun', 'SQL', 75), ('Chun', 'Tuning', 73),
('Esben', 'SQL', 43), ('Esben', 'Tuning', 31),
('Kaolin', 'SQL', 56), ('Kaolin', 'Tuning', 88),
('Tatiana', 'SQL', 87);
SELECT name, test, score, VAR_POP(score)
OVER (PARTITION BY test) AS variance_results FROM student_test;
+---------+--------+-------+------------------+
| name | test | score | variance_results |
+---------+--------+-------+------------------+
| Chun | SQL | 75 | 287.1875 |
| Chun | Tuning | 73 | 582.0000 |
| Esben | SQL | 43 | 287.1875 |
| Esben | Tuning | 31 | 582.0000 |
| Kaolin | SQL | 56 | 287.1875 |
| Kaolin | Tuning | 88 | 582.0000 |
| Tatiana | SQL | 87 | 287.1875 |
+---------+--------+-------+------------------+
См. также
- VAR_POP (эквивалент, стандартный SQL)
- STDDEV_POP (стандартное отклонение генеральной совокупности)
- STDDEV_SAMP (стандартное отклонение выборки)
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не предварительно проверяется компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержимом, необязательно отражают мнения MariaDB или любой другой стороны.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/variance/