SELECT Departamentos.Nome_Dep,
Funcionarios.Nome AS Funcionario,
Funcionarios.Salario,
AVG(Funcionarios.Salario) OVER(PARTITION BY Departamentos.Nome_Dep) "Média por Departamento"
Salario - AVG(Funcionarios.Salario) OVER(PARTITION BY Departamentos.Nome_Dep) "Diferença de Salário" FROM Funcionarios
INNER JOIN Departamentos
ON Funcionarios.ID_Dep = Departamentos.ID
ORDER BY 5 DESC
The Order By 5 is throwing me off。我从来没有喜欢它。排序按[colunmname]是,但按顺序[编号],从未见过。我把这篇文章拿掉了。ORDER BY 5 DESC是什么意思?
注意:这是T-SQL。
来源:Window Functions in SQL Server 2005, 2008, 2012
注意这通常不是一个好的做法,因为有人可以很容易地添加一列而不用注意就更改顺序,但是我怀疑这是在这种情况下完成的,但是因为第5列是计算列而他们不想去在排序中重复调用的麻烦。顺便说一句,第4列和第5列之间缺少一个逗号。 – HLGEM