#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. Спасибо за ответ, мне понадобилось бы ДВА стандартных отклонения — одно для продаж конкретного сотрудника и одно для всех сотрудников.