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
Order By5は私を失望させています。私はそれのようなものは一度もありません。 Order By [colunmname]はい、しかしOrder By [number]、これまでに見たことはありません。私はこれを記事から外しました。
注:これはT-SQLです。
これは、このSELECTステートメントの5番目のフィールドで並べ替えられます
結果セットの5列目から降順に並べ替えます。
結果セットの5番目の列で並べ替えます。
番号は、選択リスト内の列のインデックスを表します。
出典: http://mattberseth.com/blog/2007/05/quick_tip_order_by_1_descendin.html
同様の列名が計算された出力フィールドになった場合に便利です。
次の例では、この列名が(同じ古い列データの)クエリ出力SUMフィールドの名前になっているため、「order bynumberofVioation」と言うと混乱します。
そのため、計算された出力フィールドで役立ちます
例:
元のフィールド:
名前|タイプ| RiskLevel |日付|結果|違反|
/ *各タイプに違反の合計を追加します。plsnote'orderby 2 desc 'は、2番目にクエリされた列による順序を指します。つまり、hiからlow * /
type、sum(numberOfViolations)をrestaurantsTableからのnumberOfViolationsとして選択します。
それは相対位置によるソートです。
SQL ORDER BY句を使用して、結果セットの相対位置で並べ替えることができます。結果セットの最初のフィールドは1で、次のフィールドは2というように続きます。この場合、結果セットの5番目のフィールドで並べ替えます。
http://www.techonthenet.com/sql/order_by.php SQLのorderbyについて説明します。
結果セットの5番目のフィールドで並べ替えます。