У меня есть таблица под названием Orders
, в котором данные выглядит следующим образом:Windowed функции в SQL Server
EMpID OrderValue OrderID 1 100 1 2 167 89 ....
Есть несколько заказов для каждого EmpId. То, что я хочу, чтобы получить выход в этом виде
EMPID RANK VALUETOTAL VALUETHISEMPID 1 1 300 100 4 2 300 50\ .....
Если есть несколько EmpId (ы) с таким же ValueThisEmpID, то он должен получить одинаковый ранг.
Я попытался
SELECT EmpID,SUM(val) OVER() as VALUETOTAL,SUM(val) OVER(PARTITION BY EmpID)
Как я могу получить звание и заказать его по ValueThisEmpID?
Я пришел сюда SELECT DISTINCT EmpID, SUM (val) OVER() как VALUETOTAL, SUM (val) OVER (PARTITION by EmpID) как VALUEEMP, 100/SUM (val) OVER() * SUM (val) OVER (PARTITION by EmpID) в качестве ПРОЦЕНТА ОТ ПРОДАЖИ. ORDERVALUE ORDER BY VALUEEMP DESC Единственное, что сейчас отсутствует Рейтинг –
В вашем вопросе не указаны проценты. Пожалуйста, обновите свой вопрос, если у вас есть дополнительные критерии. –
На самом деле я думал о добавлении процента, как процент от общей продажи, был сделан конкретным сотрудником. Это легко после помощи ур. Спасибо –