LeetCode の SQL 実装 (196. 重複するメールボックスを削除する)

LeetCode の SQL 実装 (196. 重複するメールボックスを削除する)

[LeetCode] 196.重複したメールを削除する

SQL クエリを記述して、Person という名前のテーブル内の重複する電子メール エントリをすべて削除し、最小の ID に基づいて一意の電子メールのみを保持します。

+----+------------------+
| ID | メール |
+----+------------------+
| 1 | [email protected] |
| 2 | [email protected] |
| 3 | [email protected] |
+----+------------------+
Id はこのテーブルの主キー列です。

たとえば、クエリを実行すると、上記の Person テーブルには次の行が含まれるようになります。

+----+------------------+
| ID | メール |
+----+------------------+
| 1 | [email protected] |
| 2 | [email protected] |
+----+------------------+

この質問では、重複したメールボックスを削除するように求められています。まず、重複していないメールボックスをすべて見つけ、次にその数の逆数を取って重複したメールボックスを取得し、すべて削除します。では、重複していないメールボックスをすべて見つけるにはどうすればよいでしょうか。メールボックスごとにグループ化し、次に Min キーワードを使用して小さいメールボックスを選択し、補集合を使用して削除します。

解決策1:

IDが存在しないPersonから削除
(SELECT Id FROM (SELECT MIN(Id) Id FROM Person GROUP BY Email) p);

内部交差を使用して 2 つのテーブルを電子メール アドレスに関連付け、より大きな ID を持つ同じ電子メール アドレスを削除することもできます。以下のコードを参照してください。

解決策2:

人 p1 から p2 を削除し、人 p2 を結合します。 
p2.Email = p1.Email の場合、p2.Id > p1.Id となります。

Join の代わりに where を使用して 2 つのテーブルを直接関連付けることもできます。

解決策3:

人 p1、人 p2 から p2 を削除
p1.Email = p2.Email かつ p2.Id > p1.Id の場合;

類似トピック:

重複メール

参考文献:

https://leetcode.com/discuss/61176/simple-solution-using-a-self-join

https://leetcode.com/discuss/48403/my-answer-delete-duplicate-emails-with-double-nested-query

これで、LeetCode の SQL 実装 (196. 重複するメールボックスの削除) に関するこの記事は終了です。重複するメールボックスを削除する SQL 実装の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • SQL 重複メールアドレス削除 Likou 質問解決プロセス

<<:  iframe なしの div ネスト HTML

>>:  Momentsで写真を整理するためのCSSコード

推薦する

Reactのコンテキストとプロパティの説明

目次1. 文脈1. 使用シナリオ2. 使用手順3. 結論2. 小道具の詳細1. 子供の財産2. 小道...

nginx keepaliveの具体的な使い方

http1.1 プロトコルのデフォルトのリクエスト ヘッダーでは、図に示すように、デフォルトで ke...

CSS3 のテキストとフォントの新しい設定

テキストシャドウテキストシャドウ: 水平オフセット 垂直オフセット ぼかし色互換性: IE10+ &...

Vue シングルページ SEO の 4 つのソリューションについての簡単な説明

目次1.Nuxtサーバーサイドレンダリングアプリケーションの展開(SSRサーバーレンダリング)利点:...

JavaScript でドラッグ可能なプログレスバーを実装する

この記事では、ドラッグ可能なプログレスバーを実装するためのJavaScriptの具体的なコードを参考...

Linuxにおけるumaskコマンドの使用原理と計算方法の詳しい解説

目次umask umaskの使用法原理1. umask値2. ファイルディレクトリの最大権限3. 従...

Linux サーバーのグラフィック カードのクラッシュの解決策

ログインインターフェースの解像度が特に大きい場合、グラフィカルインターフェース全体が特に大きくなり、...

純粋な CSS でフォ​​ーム検証を実装するためのサンプル コード

日常業務において、フォームの検証は非常に一般的な設計要件です。ログイン ボックスや登録ボックス、アン...

WeChatアプレットリクエストの前処理方法の詳細な説明

質問一部のページでは、onload でデータを要求してからビューをレンダリングするため、ミニプログラ...

MySQLは1つのテーブルからデータをクエリし、それを別のテーブルに挿入する実装方法

MySQLは1つのテーブルからデータをクエリし、それを別のテーブルに挿入する実装方法ウェブサイト開発...

Reactにおける制御されたコンポーネントと制御されていないコンポーネントの簡単な分析

目次制御されていないコンポーネント制御コンポーネント知らせ結論は制御されていないコンポーネントフォー...

Centos7 での MySQL 5.7.20 のインストールと設定に関する詳細なチュートリアル

1. 公式 Web サイトから MySQL 5.7 インストール パッケージ (mysql-5.7....

Nginx で 403 forbidden を解決するための完全な手順

ウェブページに403 Forbiddenと表示されるNginx (yum インストール ログは通常 ...

MySQL ジョイントテーブル更新デー​​タの詳細な例

1.MySQL UPDATE JOIN構文MySQL では、UPDATE ステートメントでJOIN句...

スクロール時に選択領域のフォント色を暗くするために CSS を使用するサンプルコード

日付ピッカーをカプセル化する場合、選択時にフォントの色を暗くする必要があります。実装後の効果を見てみ...