当前位置: 首页 > article >正文

LeetCode--196. 删除重复的电子邮箱

文章目录

  • 1 题目描述
  • 2 解题思路
    • 2.1 代码实现

1 题目描述

表: Person

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| email       | varchar |
+-------------+---------+

id 是该表的主键列(具有唯一值的列)。
该表的每一行包含一封电子邮件。电子邮件将不包含大写字母。

编写解决方案 删除 所有重复的电子邮件,只保留一个具有最小 id 的唯一电子邮件, 请注意你应该编写一个 DELETE 语句而不是 SELECT 语句

运行脚本后,显示的答案是 Person 表。驱动程序将首先编译并运行您的代码片段,然后再显示 Person 表。Person 表的最终顺序 无关紧要

返回结果格式如下示例所示。

示例 1:

输入:
Person 表:

+----+------------------+
| id | email            |
+----+------------------+
| 1  | john@example.com |
| 2  | bob@example.com  |
| 3  | john@example.com |
+----+------------------+

输出:

+----+------------------+
| id | email            |
+----+------------------+
| 1  | john@example.com |
| 2  | bob@example.com  |
+----+------------------+

解释: john@example.com 重复两次。我们保留最小的Id = 1

2 解题思路

  1. 使用 inner join,形成笛卡尔积
  2. 如果 email 相同,但是id不同说明有重复
  3. email 相同的, 需要把 id 大的删除,从而保留小id的数据

2.1 代码实现

  1. Person p1 inner join Person p2 on p1.email = p2.email, Person表内联自己, 查询 email 相同的数据
    image.png
    查询出来的数据 2, 3, 4 行是同一条数据关联自己
  2. where p1.id > p2.id 从 eamil 相同数据中筛选出不是同一条数据, 且 id 大的数据
    image.png
  3. delete p1 from Person p1 指定删除 p1 表中的数据

最终代码实现

delete p1 from Person p1 inner join Person p2 on p1.email = p2.email where p1.id > p2.id

http://www.kler.cn/news/108226.html

相关文章:

  • C++ 笔记
  • 深入了解 Elasticsearch 8.1 中的 Script 使用
  • 【swagger动态配置输入参数忽略某些字段】
  • 如何确定Apache Kafka的大小和规模
  • Azure - 自动化机器学习AutoML Azure使用详解
  • ruoyi vue前后端分离功能介绍
  • 基于 Redis + Lua 脚本实现分布式锁,确保操作的原子性
  • Web APIs——事件流
  • 【CSDN 每日一练 ★★☆】【字符串】外观数列
  • golang连接池检查连接失败时如何重试
  • Linux网络编程01
  • npm更新包时This operation requires a one-time password.
  • 数学家陶哲轩在形式证明帮助下发现论文中错误
  • moviepy处理手机端图片旋转问题
  • JAVA同城服务智慧养老小程序怎么开发?
  • 企业微信接入芋道SpringBoot项目
  • sql--索引使用
  • sharepoint2016-2019升级到sharepoint订阅版
  • python DevOps
  • uniapp实现瀑布流
  • Android问题笔记四十二:signal 11 (SIGSEGV), code 1 (SEGV_MAPERR) 的解决方法
  • 一个Binder的前生今世 (二):Binder进程和线程的创建
  • 爬取抖音用户的个人基本信息
  • Latex报错 “Paragraph ended before \Gin@iii was complete“
  • 万字解析设计模式之工厂方法模式与简单工厂模式
  • 竞赛选题 深度学习图像修复算法 - opencv python 机器视觉
  • 4.5 final修饰符
  • hive使用中的参数优化与问题排查
  • Kafka KRaft模式探索
  • 【unity小技巧】unity排序问题的探究