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コード

推薦する

vue.js ベースの QQ チャット ルーム

目次導入効果のデモンストレーションは次のとおりです。 MChat コンポーネントのレンダリング: I...

Nginx がフロントエンド リソースへのクロスドメイン アクセスの問題をどのように解決するかの詳細な説明

フロントエンドのクロスドメイン問題に2日間近く悩まされましたが、ようやくngnxを使って解決したので...

Linux システムでのスケジュールされたタスクの紹介

目次1. 計画タスクをカスタマイズする2. 時間を同期する3. 練習する4. セキュリティの問題1....

Web ページでパラメータ名によって ActiveX コントロールのプロパティに値を割り当てる例

コードをコピーコードは次のとおりです。 <HTML> <ヘッド> <T...

Vue がコンポーネント通信を実装する 8 つの例

目次1. Props 親コンポーネント ---> 子コンポーネント通信2. $emit 子コン...

Webデザインチュートリアル(2):模倣と盗作について

<br />前回の記事では、Webデザインの手順と方法を紹介しました。詳細については、前...

MySQLデッドロック問題の詳細な分析

序文私たちのビジネスがまだ初期段階にあり、同時実行の度合いが比較的低い場合、数年間はデッドロックの問...

nginx設定ファイルの解釈の詳細な説明

nginx 設定ファイルは主に 4 つの部分に分かれています。 main{#(グローバル設定) ht...

Vue の自動書式設定の改行保存の詳細な説明

ネットで変更方法をいろいろ調べたのですが、うまくいきませんでした。後で大物から見て削除しました。フォ...

スライド効果を実現するためのネイティブJavaScript

ページ、特にホームページを作成するときは、通常、Web サイト全体の他のメイン ページにリンクできる...

HTMLを教える記事

アーティストになるつもりがない場合は、開発者として HTML を読んで、必要に応じて簡単な変更を加え...

MySQL 分離レベル操作プロセスの詳細説明 (cmd)

コミットされていない読み取りの例の操作プロセス - コミットされていない読み取り1. 2 つの My...

Docker-compose インストール db2 データベース操作

db2 データベースをホストマシンに直接インストールするのは面倒で、ユーザーや権限を巻き込むのも不便...

美しい FLASH ウェブサイト デザイン例 50 選

Flashにより、デザイナーや開発者はブラウザ上でリッチなコンテンツを提供し、動き、インタラクティブ...

検証例 MySQL | 同じ値を持つフィールドを更新すると、binlog に記録されます

1. はじめに数日前、開発仲間から、フィールドを同じ値に更新すると binlog が記録されるかどう...