私の本はそれを言っています-
1-ランキング関数(RANK()、DENSE_RANK()、ROW_NUMBER()など)には、OVER()句が必要です。
したがって、以下のコードは間違っています-
select *, RANK()
from [grant]
order by Amount desc
エラー-「RANK」の近くの構文が正しくありません。「OVER」が必要です。
上記のコードでRANK()の後にOVER()を追加すると、再びエラーが発生します。(エラー-ランキング関数「RANK」にはORDER BY句が必要です。)
2-次に、私の本は、「ランキング関数は、OVER()の引数として表示されるためにORDERBY情報が必要です」と付け加えています。
select *, RANK() OVER(ORDER BY Amount DESC) as GrantRank
from [grant]
私の質問は-
1-ランキング関数を含むOVER()句が必要なのはなぜですか? 2-なぜorderbyステートメントを削除してOVER()内に配置する必要があるのですか?
この本はこれらの背後にある論理を説明していません!私がそれを理解するのを手伝ってください。
前もって感謝します。