SQL-запрос для получения стандартного отклонения для группы и суммы одновременно

#sql #postgresql

#sql #postgresql

Вопрос:

У меня есть сценарий, очень похожий на этот: таблица, записывающая каждую сделку по продаже для конкретного сотрудника. Данные, которые мне потребуются, должны быть сгруппированы по сотруднику и должны иметь стандартное отклонение продаж, сгенерированных сотрудником, и стандартное отклонение для всех сотрудников и всех продаж на основе исходной таблицы, а не агрегированных групповых данных.

Если бы это были итоги, то есть с использованием сумм, это должно выглядеть примерно так:

 SELECT
    employee,
    SUM (employees.sales ) AS "employee sales",
    SUM(SUM (employees.sales)) OVER () AS "total sales"
FROM
    employees
GROUP BY
    employee
  

Специфика моего случая такова, что я не могу использовать подзапросы.
Был бы признателен за любую помощь.

Комментарии:

1. Я предполагаю, что вам нужно стандартное отклонение совокупных продаж.

2. спасибо за отзыв. Я думаю, это вполне можно прочитать таким образом. Обновил вопрос, надеюсь, с лучшей формулировкой.

Ответ №1:

Я думаю, вам просто нужна функция STDDEV() window:

 SELECT employee,
       SUM(employees.sales ) AS employee_sales,
       SUM(SUM(employees.sales)) OVER () AS total_sales,
       STDDEV(SUM(employees.sales)) OVER () AS stddev_sales
FROM employees
GROUP BY employee;
  

Комментарии:

1. Спасибо за ответ, мне понадобилось бы ДВА стандартных отклонения — одно для продаж конкретного сотрудника и одно для всех сотрудников.