は、データベースに動作します:MS SQL RANK関数
質問#1
select rank() over (partition by costrate order by costrate), costrate
from Production.Location
私はなぜ疑問に思って、1の結果を取得します。パーティションを削除してただちに注文すると、すべてのコストレートが0になり、次のコストレート値に次のランク値が設定されます。
locationidランク別の質問の2
select rank() over (partition by costrate order by locationid) ranknum,
costrate, locationid
from Production.Location
order by ranknum
私は上記を実行し、再びcostrateことによってそれを分割#が、順序が一致していないようです。誰かが両方のクエリで何が起こっているのか説明できますか?
ありがとうございました。
'RANK()'がどのように動作するのかドキュメントを見ましたか? –
ウィンドウ関数の 'PARTITION BY'と' ORDER BY'の両方に同じ列/式を持つことはめったにありません。ここでそれをする理由は不明です。 –