2011-11-02 10 views
12
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 

Zakon O 5 mnie wyrzuca. Nigdy czegoś takiego nie lubię. Sortuj według [nazwa_funkcji] tak, ale Sortuj według [liczba], nigdy wcześniej nie widziano. Wyciągnąłem to z artykułu.Co oznacza ZAMÓWIENIE Z 5 DESC?

Uwaga: To jest T-SQL.

Źródło: Window Functions in SQL Server 2005, 2008, 2012

+3

NOte, że zwykle nie jest to dobrą praktyką, ponieważ ktoś może łatwo dodać kolumnę i zmienić kolejność bez zauważenia, podejrzewam, że jest to zrobione w tym przypadku, ponieważ kolumna 5 jest kolumną obliczeniową i nie chcieli iść do problem powtarzania kalorii w zamówieniu. BTW jest brakujący przecinek między kolumnami 4 i 5 – HLGEM

Odpowiedz

22

To zamówienie przez pole 5th w tym SELECT

+0

Doskonały. Dziękuję Ci. Natychmiast zobaczyłem to w artykule po spojrzeniu na twoją odpowiedź. Dziękuję Ci. – dotnetN00b

4

zamówienia przez 5th kolumny w tabeli wynikowej.

4

Zamówienie przez piątą kolumnę w zbiorze wynik malejącej.

0

Kolejność według 5. pola w zestawie wyników.

0

Jest to SORTOWANIE WEDŁUG Względnego położenia.

Możesz użyć klauzuli SQL ORDER BY do sortowania według względnej pozycji w zestawie wyników, gdzie pierwsze pole w zestawie wyników wynosi 1. Następne pole to 2, i tak dalej. Tutaj w tym przypadku Zamów przez 5. pole w zestawie wyników.

Przejdź przez http://www.techonthenet.com/sql/order_by.php o porządku sql przez.