zoukankan      html  css  js  c++  java
  • SQL实战 4.删除重复的电子邮箱

    题目描述

    编写一个 SQL 查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。

    +----+------------------+
    | Id | Email |
    +----+------------------+
    | 1 | john@example.com |
    | 2 | bob@example.com |
    | 3 | john@example.com |
    +----+------------------+
    Id 是这个表的主键。
    例如,在运行你的查询语句之后,上面的 Person 表应返回以下几行:

    +----+------------------+
    | Id | Email |
    +----+------------------+
    | 1 | john@example.com |
    | 2 | bob@example.com |
    +----+------------------+
     

    提示:

    执行 SQL 之后,输出是整个 Person 表。
    使用 delete 语句。

    sql如下

    写法1:

    DELETE p1 FROM Person p1,
        Person p2
    WHERE
        p1.Email = p2.Email AND p1.Id > p2.Id

    写法2:

    delete from Person  where id not in 
    (
    select id from
    (
    select id,email,row_number() over(partition by email order by id) rn from Person ) a where rn=1
    )


  • 相关阅读:
    spark java wordCount实例
    SpringMVC 商城项目
    jstl 遍历数据
    jquery 方法总结
    8ch
    7ch
    使用vuex实现组件间传值
    Vue父子组件之间传值
    从浏览器输入URL地址到最终页面渲染完成,发生了什么?
    数组去重
  • 原文地址:https://www.cnblogs.com/Transkai/p/14856930.html
Copyright © 2011-2022 走看看