ホームページ >データベース >mysql チュートリアル >分析関数を使用して SQL で 2 番目に高い給与を見つけるにはどうすればよいですか?
SQL 分析関数を使用して 2 番目に高い給与を見つけます
従業員データベース テーブルから 2 番目に高い給与を簡単に取得するにはどうすればよいですか?
答え:
Oracle の分析関数は、このタスクに対するソリューションを提供します。次の SQL クエリは、これらの関数を利用して 2 番目に高い給与を特定します:
<code class="language-sql">SELECT * FROM ( SELECT sal, DENSE_RANK() OVER (ORDER BY sal DESC) AS rnk FROM ( SELECT DISTINCT sal FROM emp ) ) WHERE rnk = 2</code>
このクエリは DENSE_RANK() 関数を利用して、給与に降順で連続したランキングを割り当てます。次に、WHERE 句で結果をフィルタリングして、2 番目に高い給与を表す rnk = 2 の行を取得します。
その他の注意事項:
他の情報を選択する場合、分析関数の選択が結果に影響します。同点の場合、RANK() はランキングをスキップし、ROW_NUMBER() は次の従業員を返します。この場合、通常は DENSE_RANK() が優先されます。
分析関数の選択は、最終的には特定のビジネス ニーズと関係状況の処理方法によって決まります。
以上が分析関数を使用して SQL で 2 番目に高い給与を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。