Функция SQL Server STDEV()

В этом руководстве вы узнаете, как использовать функцию 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.

На основе стандартного отклонения мы можем показать, какая зарплата находится в пределах одного стандартного отклонения от среднего. Другими словами, у нас есть «стандартный» способ узнать, что такое низкая, нормальная и высокая зарплата:

Функция SQL Server СТАНДОТКЛОН()

На диаграмме показано, что:

  • Джон, Элис, Боб, Эмили, Майкл, София и Эмма получают обычную зарплату.
  • У Дэвида низкая зарплата.
  • У Джеймса и Оливии высокая зарплата.

Краткое содержание

  • Используйте функцию СТАНДОТКЛОН() для вычисления выборочного стандартного отклонения набора значений.
Мирослав С.

Автор статей, ИБ-специалист