[LeetCode] 177. 最も高い給与従業員テーブルからn番目に高い給与を取得する SQL クエリを記述します。
たとえば、上記の従業員テーブルの場合、n = 2 の n 番目に高い給与は 200 です。n 番目に高い給与がない場合、クエリは null を返します。 この質問は、前回の「2番目に高い給与」の質問の拡張です。前回の質問のアプローチに基づいて、これを N に簡単に拡張できます。「2番目に高い給与」のソリューション 1 の分析によると、OFFSET の後の 1 を N-1 に変更するだけで済みます。ただし、MySQL はおそらくこの操作をサポートしていないため、エラーを報告します。次に、最初に SET N = N - 1 を追加して N を N-1 に変更し、次に同じ操作を実行します。 解決策1: CREATE FUNCTION getNthHighestSalary(N INT) は INT を返します 始める N = N - 1 に設定します。 戻る ( SELECT DISTINCT Salary FROM Employee GROUP BY Salary ORDER BY 給与 DESC LIMIT 1 OFFSET N ); 終わり 2番目に高い給与のソリューション4の分析によると、1をN-1に変更するだけで済みます。ただし、ここではN-1の計算をサポートしています。以下のコードを参照してください。 解決策2: CREATE FUNCTION getNthHighestSalary(N INT) は INT を返します 始める 戻る ( 従業員E1からMAX(給与)を選択 ここでN - 1 = (SELECT COUNT(DISTINCT(E2.Salary)) FROM 従業員E2 ここで、E2.Salary > E1.Salary) ); 終わり もちろん、最後の > を >= に変更して、N-1 を N に置き換えることもできます。 解決策3: CREATE FUNCTION getNthHighestSalary(N INT) は INT を返します 始める 戻る ( 従業員E1からMAX(給与)を選択 ここでN = (SELECT COUNT(DISTINCT(E2.Salary)) FROM 従業員E2 ここで、E2.Salary >= E1.Salary) ); 終わり 類似トピック: 2番目に高い給与 参考文献: https://leetcode.com/discuss/88875/simple-answer-with-limit-and-offset https://leetcode.com/discuss/63183/変数を宣言せずに順序を使用する最速のソリューション これで、LeetCode (177. 給料がN番目に高い) のSQL実装に関するこの記事は終了です。より関連性の高い給料がN番目に高いSQL実装のコンテンツについては、123WORDPRESS.COMの以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMを応援してください。 以下もご興味があるかもしれません:
|
<<: 高度な JavaScript フロントエンド開発でよく使用されるいくつかの API の例の詳細な説明
>>: Dockerコンテナでは、イメージを簡素化してサイズを縮小する方法を詳しく説明しています
前提条件: Mac、zsh がインストールされ、bash のときに mysql がダウンロードされ、...
私はプロジェクトを実行するために react を使い始めたばかりで、非常に未熟で完全な初心者です。私...
一緒に学びましょう1. 伝統的な方法コードをコピーコードは次のとおりです。 <object c...
1. ASP.NET Web アプリケーションのテンプレートとは何ですか? それらの違いは何ですか?...
mysql5.7.18の解凍版はmysqlサービスを起動します。具体的な内容は以下のとおりです。 1...
この記事では、オンラインリアルタイム多人数チャットルームを実現するためのNode.js+expres...
MySQL インストーラーは、MySQL ソフトウェアのあらゆるニーズに対応する、使いやすいウィザー...
みなさんこんにちは。今日はv-modelを使って親子コンポーネントのバインディング効果を実現する方法...
デバッグブランチプロジェクトの通常の開発中に、以前にリリースされたバージョンにバグがある場合がありま...
目次スケルトンスクリーンとはアプレットでスケルトン画面を生成する方法導入方法表示と非表示ユーザーエク...
ELKとは何ですか? ELK は、Elastic が提供するログ収集およびフロントエンド表示ソリュー...
1. インストール1. MySQLをダウンロードするダウンロードアドレス: リンクアドレスブラウザで...
背景:テーブルスペース: すべての INNODB データはテーブルスペース (共有テーブルスペース)...
1. スクロールスナップはフロントエンド開発者にとって必須のスキルですCSS スクロール スナップは...
1つ。まず、アイデアとしてパッケージ化する必要があります。私はSpringbootフレームワークプロ...