ホームページ >データベース >mysql チュートリアル >Oracle の RANK() と DENSE_RANK() : N 番目の給与を見つけて Null 値を処理する方法
oracleのrank()およびdense_rank():n番目に高い給与
を見つける この記事では、Oracleの>>>関数の違いを調査し、N番目に高い給与の識別と潜在的なヌル値を識別する際の使用を示しています。
RANK()
DENSE_RANK()
RANK()
を理解しています
DENSE_RANK()
両方の関数は、順序付けられたデータセット(パーティション)内にランクを割り当てます。 重要な違いは、ネクタイの取り扱いにあります:
RANK()
DENSE_RANK()
n番目に高い給与を抽出します
を希望のランクに置き換えます(3番目に高い給与の場合は3)。 注文ランキングを下降するために重要な
句に注意してください
RANK()
<code class="language-sql">SELECT * FROM ( SELECT emp.*, RANK() OVER (ORDER BY sal DESC) as salary_rank FROM emptbl emp ) ranked_salaries WHERE salary_rank = n;</code>
n
値の扱いはORDER BY sal DESC
句に依存します:
:
給与は最初にランクされています。NULL
ORDER BY
給与は最後にランクされています
ORDER BY sal NULLS FIRST
NULL
包括的なガイドとその他の例については、このリソースを参照してください。
以上がOracle の RANK() と DENSE_RANK() : N 番目の給与を見つけて Null 値を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。