В этом руководстве вы узнаете, как использовать функцию SQL Server STDEV() для вычисления выборочного стандартного отклонения набора значений.
Введение в функцию SQL Server STDEV()
Стандартное отклонение измеряет вариацию или дисперсию значений в наборе значений.
Низкое стандартное отклонение указывает на то, что значения, как правило, близки к среднему значению, тогда как высокое стандартное отклонение показывает, что значения разбросаны в более широком диапазоне.
Существует два типа стандартных отклонений:
- Стандартное отклонение популяции анализирует всю популяцию.
- Стандартное отклонение выборки анализирует подмножество(выборку) генеральной совокупности.
В SQL Server можно использовать функцию STDEV() для вычисления выборочного стандартного отклонения набора значений.
Вот синтаксис функции СТАНДОТКЛОН:
STDEV( [ ALL | DISTINCT ] expression )
В этом синтаксисе:
- Параметр ALL указывает функции применять все значения, включая дубликаты. Значение по умолчанию — ALL.
- Параметр DISTINCT указывает функции применять его к уникальным значениям.
- Выражение представляет собой столбец таблицы или выражение, содержащее значения, к которым применяется функция.
Функция СТАНДОТКЛОН() возвращает стандартное отклонение значений в столбце таблицы, указанном выражением, в виде числа с плавающей точкой.
Пример функции SQL Server STDEV()
Сначала создайте новую таблицу под названием «зарплаты», в которой будут храниться зарплаты сотрудников:
CREATE TABLE salaries( id INT IDENTITY PRIMARY KEY, name VARCHAR(255) NOT NULL, salary DEC(10, 2) NOT NULL );
Во-вторых, вставьте несколько строк в таблицу зарплат:
INSERT INTO salaries(name, salary) VALUES ('John', 60000.00), ('Alice', 65000.00), ('Bob', 70000.00), ('Emily', 55000.00), ('Michael', 75000.00), ('Sophia', 80000.00), ('David', 50000.00), ('Emma', 75000.00), ('James', 110000.00), ('Olivia', 120000.00);
В-третьих, извлеките данные из таблицы зарплат:
SELECT * FROM salaries;
Выход:
id | name | salary ---+---------+--------- 1 | John | 60000.00 2 | Alice | 65000.00 3 | Bob | 70000.00 4 | Emily | 55000.00 5 | Michael | 75000.00 6 | Sophia | 80000.00 7 | David | 50000.00 8 | Emma | 75000.00 9 | James | 110000.00 10 | Olivia | 120000.00 (10 rows)
В-четвертых, используйте функцию СТАНДОТКЛОН() для расчета выборочного стандартного отклонения зарплат:
SELECT STDEV(salary) salary_stdev FROM salaries;
Выход:
salary_stdev ----------------- 22705.84848790187
Чтобы сделать стандартное отклонение более удобным для чтения, вы можете округлить его с помощью функции ROUND() :
SELECT ROUND(STDEV(salary), 0) salary_stdev FROM salaries;
Выход:
salary_stdev ------------ 22706.00
В-пятых, вычислите разницу между стандартным отклонением и средним значением:
SELECT ROUND(AVG(salary) - STDEV(salary), 0) low, ROUND(AVG(salary) + STDEV(salary), 0) high FROM salaries;
Выход:
low | high ---------+--------- 53294.00 | 98706.00 (1 row)
Минимальное значение — 53 294, максимальное — 98 706.
На основе стандартного отклонения мы можем показать, какая зарплата находится в пределах одного стандартного отклонения от среднего. Другими словами, у нас есть «стандартный» способ узнать, что такое низкая, нормальная и высокая зарплата:
На диаграмме показано, что:
- Джон, Элис, Боб, Эмили, Майкл, София и Эмма получают обычную зарплату.
- У Дэвида низкая зарплата.
- У Джеймса и Оливии высокая зарплата.
Краткое содержание
- Используйте функцию СТАНДОТКЛОН() для вычисления выборочного стандартного отклонения набора значений.