ホームページ >データベース >mysql チュートリアル >分析関数を使用して SQL で 2 番目に高い給与を見つけるにはどうすればよいですか?

分析関数を使用して SQL で 2 番目に高い給与を見つけるにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-07 18:18:39566ブラウズ

How Can I Find the Second Highest Salary in SQL Using Analytic Functions?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。