ホームページ > データベース > mysql チュートリアル > SQL データベースで 3 番目または N 番目の最高給与を効率的に見つけるにはどうすればよいですか?

SQL データベースで 3 番目または N 番目の最高給与を効率的に見つけるにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-17 14:46:15
オリジナル
771 人が閲覧しました

How Can I Efficiently Find the Third or Nth Maximum Salary in a SQL Database?

給与テーブルで 3 番目または Nᵗʰ の最大給与を見つける

給与テーブルから 3 番目または Nᵗʰ の最大給与を決定する (EmpID、EmpName、 EmpSalary) は、データ処理における一般的なタスクです。これを実現するための 3 つの最適化されたアプローチを次に示します。

行番号メソッド:

このメソッドは、給与に基づいて行番号を割り当て、行を降順に並べ替えます。 3 番目または nᵗʰ の最大給与は、指定された行から取得できます。

SELECT Salary,EmpName
FROM
  (
   SELECT Salary,EmpName,ROW_NUMBER() OVER(ORDER BY Salary) As RowNum
   FROM EMPLOYEE
   ) As A
WHERE A.RowNum IN (2,3)
ログイン後にコピー

サブ クエリ メソッド:

このアプローチでは、サブクエリを使用して給与の数をカウントします。現在の給与よりも高い独自の給与を設定し、指定された給与に基づいて希望の最高給与を決定します。 order.

SELECT *
FROM Employee Emp1
WHERE (N-1) = (
               SELECT COUNT(DISTINCT(Emp2.Salary))
               FROM Employee Emp2
               WHERE Emp2.Salary > Emp1.Salary
               )
ログイン後にコピー

Top Keyword メソッド:

SQL の TOP キーワードを使用すると、指定された数の最大値を直接取得できます。ここでは、3 番目または nᵗʰ の最大給与を取得するために使用されます。

SELECT TOP 1 salary
FROM (
      SELECT DISTINCT TOP n salary
      FROM employee
      ORDER BY salary DESC
      ) a
ORDER BY salary
ログイン後にコピー

これらの最適化されたテクニックを活用することで、給与表から 3 番目または nᵗʰ の最大給与を効率的に見つけて、データ分析と意思決定を最適化できます。 -製作過程

以上がSQL データベースで 3 番目または N 番目の最高給与を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート