zoukankan      html  css  js  c++  java
  • ROWID面试题-删除表中重复数据(重复数据保留一个)

    /*
        ROWID是行ID,通过它一定可以定位到r任意一行的数据记录
      
       ROWID              DNAME               DEPTNO LOC
        ------------------ ---------------------------- ---------- ----------
       AAASSUAAEAAAAIbAAA ACCOUNTING          10     NEW YORK
       AAASSUAAEAAAAIbAAB RESEARCH            20     DALLAS
       AAASSUAAEAAAAIbAAC SALES               30     CHICAGO
       AAASSUAAEAAAAIbAAD OPERATIONS          40     BOSTON
       AAASSUAAEAAAAIeAAB RESEARCH            20     DALLAS
       AAASSUAAEAAAAIeAAC SALES               30     CHICAGO
    
    
       重复数据只是数据内容是重复的,而ROWID是唯一的
    
    */
    
    /*
        删除表中重复数据:
       
        分析:1.首先应该查询出所有需要被保留的数据(被保留的数据一定是最早增加的)
               2.再根据(重复数据列)分组查询出各自分组中最小的rowid,只要分组查询的rowid不是在min(rowid)的集合中就全部删除
    
    SQL> select deptno,dname,loc ,min(rowid) from mydept group by deptno,dname,loc;
    
     DEPTNO DNAME       LOC                MIN(ROWID)
    ---------- ---------------------------- -------------------------- --------------
     20 RESEARCH        DALLAS             AAASSUAAEAAAAIbAAB
     40 OPERATIONS      BOSTON             AAASSUAAEAAAAIbAAD
     10 ACCOUNTING      NEW YORK           AAASSUAAEAAAAIbAAA
     30 SALES           CHICAGO            AAASSUAAEAAAAIbAAC
    
    
    
    SQL> delete from mydept where rowid not in(select min(rowid) from mydept group by deptno, dname,loc);
    
    已删除2行。
    
      删除了重复数据的表数据如下:
    
    SQL> select * from mydept;
    
        DEPTNO DNAME                        LOC
    ---------- ---------------------------- ------------------
            10 ACCOUNTING                   NEW YORK
            20 RESEARCH                     DALLAS
            30 SALES                        CHICAGO
            40 OPERATIONS                   BOSTON
    
    */
  • 相关阅读:
    eventlet设计模式
    backbone Model调用save方法的时候提交方式
    django form POST方法提交表达
    wordpress简单搭建个人博客
    docker-py环境配置
    EditPlus安装与注册
    xmind安装和升级
    统计学习的相关定义
    LaTeX初识
    flask_mail发送邮件
  • 原文地址:https://www.cnblogs.com/yuefeng123/p/7468896.html
Copyright © 2011-2022 走看看