zoukankan      html  css  js  c++  java
  • oracle 查询重复数据并且删除, 只保留一条数据重复数据

    最近面试中都遇到了这样一个数据库题:

    删除表中的重复数据,有且只保留一条重复数据。

      思路:

        1)这个题需要用到rowid,首先找到重复数据的rowid,并找出rowid最大或最小值,作为删除的条件;

          select min(rowid) from aa group by Name having count(Name) > 1

        2)根据name找出数量大于1的name

          select name from aa group by name having count(name) > 1

        3)根据上两个条件进行执行删除操作

          delete from aa t where t.name in (select name from aa group by name having count(name) > 1) 

            and rowid not in (select min(rowid) from aa group by Name having count(Name) > 1);

  • 相关阅读:
    P1093 奖学金
    华容道
    回文数
    P1654 OSU!
    Noip P1063 能量项链
    Noip 寻宝
    NOIP 2009 普及组 第三题 细胞分裂
    拦截器
    OGNL
    Struts2 配置详解
  • 原文地址:https://www.cnblogs.com/blog411032/p/8989212.html
Copyright © 2011-2022 走看看