[LeetCode] 176. 2番目に高い給与従業員テーブルから 2 番目に高い給与を取得する SQL クエリを記述します。
たとえば、上記の従業員テーブルの場合、2 番目に高い給与は 200 です。2 番目に高い給与がない場合、クエリは null を返します。 この問題は、テーブルの列で 2 番目に大きい数字を見つけるように求めています。この問題を解く方法はたくさんあります。まず、2 つのキーワード Limit と Offset を使用したソリューションを見てみましょう。MySQL の Limit の後の数字は、返されるデータの数を制限し、Offset はオフセットです。したがって、2 番目に高い給与を検索する場合は、まず給与を降順で並べ替え、次に Offset を 1 に設定します。これは、2 番目、つまり 2 番目に高い給与から開始することを意味します。次に、Limit を 1 に設定します。これは、2 番目に高い給与のみを取り出すことを意味します。Limit を 2 に設定すると、2 番目と 3 番目に高い給与の両方が取り出されます。 解決策1: 従業員から給与を選択 給与でグループ化 UNION ALL (給与としてNULLを選択) ORDER BY 給与 DESC LIMIT 1 OFFSET 1; 最大値を返す Max 関数を使用することもできます。ロジックは、最大値を含まない数値の最大値、つまり 2 番目に大きい値を取り出すというものです。 解決策2: 従業員からMAX(給与)を選択 給与が支払われない場所 (従業員からMAX(給与)を選択); 次の方法は基本的に上記と同じですが、Not in キーワードの代わりに小なり記号 < が使用され、効果は同じです。 解決策3: 従業員からMAX(給与)を選択 給与 < (従業員からMAX(給与)を選択); 最後に、N 番目に高い給料を見つけるために拡張できる方法を見てみましょう。次の文の 1 を N-1 に変更するだけです。N-1 を代入すると、2 番目に高い給料は 1 になります。次の文のロジックは、2 番目に高い給料を見つけたい場合は、最大値の 1 つが存在することを許可し、残りの数字の中で最大の値、つまり全体の 2 番目に大きい値を見つけるというものです。 解決策4: 従業員E1からMAX(給与)を選択 ここで 1 = (SELECT COUNT(DISTINCT(E2.Salary)) FROM 従業員E2 ここで、E2.Salary > E1.Salary); 参考文献: https://leetcode.com/discuss/47041/非常に非常にシンプルなソリューション https://leetcode.com/discuss/42849/general-solution-not-using-max https://leetcode.com/discuss/21751/simple-query-which-handles-the-null-situation これで、LeetCode (176. 給与2位) のSQL実装に関するこの記事は終了です。給与2位のSQL実装に関するより関連性の高いコンテンツについては、123WORDPRESS.COMの以前の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMを応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: フレックスボックスレイアウトの最終行の左揃えの実装アイデア
ミニプログラムは、参考までに完全なショッピングカート[すべて選択/選択解除して金額を計算/加算と減算...
簡単に言えば、遅延レプリケーションとは、スレーブ データベースがマスター データベースより 1 時間...
目次序文準備する実装のアイデアコードについて要約する序文WeChat 認証ログインは、WeChat ...
目次分散IDソリューションの概要データベース自動増分IDデータベースマルチマスターモード数値セグメン...
ELKとは何ですか? ELK は、Elastic が提供するログ収集およびフロントエンド表示ソリュー...
テキストシャドウの紹介CSSでは、 text-shadowプロパティを使用してテキストの影を設定しま...
目次1. ログ関連サービス2. システム内の共通ログファイル1. ログ関連サービスCentOS 6....
前回のブログでは、Nginx と httpd を使用して、逆生成用のバックエンド Tomcat サー...
目次ローカルでコンテナを作成した後、このコンテナに基づいてローカル イメージを作成し、このイメージを...
この記事では、携帯電話のプルダウンリフレッシュを模倣したjsの具体的なコードを参考までに共有します。...
1. インデックスを作成する理由(メリット)インデックスを作成するとシステムのパフォーマンスが大幅に...
MySQL グリーンバージョン設定コードと 1067 エラーMySQL エンコーディングを表示 ...
目次概要1. store.jsを定義する2. store.js を使用するコンポーネント3. 成果を...
Div 基本レイアウト <div class="main"> <...
序文場合によっては、次の図のような浮動効果の要件が必要になります。 成し遂げる標準的な通常の状況では...