Print

oracle查询结果去重复

问:oracle查询重复数据方法
  1. 答:比方说
    在A表中存在一个字段 “name” ,
    而且不同记录之间的 “name” 值有可能会相同,
    现在就是需要查询出在该表中的各记录之间, “name” 值存在重复的项;
    如果还查性别也相同大则如下:
    有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重
    复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。
    就可以得到无重复记录的结果集。
    如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除
    发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。
    假设有重复的字段为 Name , Address ,要求得到这两个字段唯一的结果集
    最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写
    在select子句中省去此列)
问:在oracle数据库中,怎样查询出只有一个字段的表的重复数据?
  1. 答:方法一:可以通过group by 进行分组。\x0d\x0asql:select username,count(username) from tablename grop by username;\x0d\x0a解释:以上sql就是通过分组函数读取出tablename表中username的值和每个不同值的统计个数。\x0d\x0a方法二:可以通过distinct函数 进行去重查询。\x0d\x0asql:select distinct username from tablename\x0d\x0a解释:本sql就是查询出所有的tablename表中的username值(不重复)。
问:oracle查询出现的重复记录怎么去除
  1. 答:可按如下方法去除:
    如,test表中有如下数据:
    现在要删除那么重复的数据,只保留其中一条,可用如下语句:
    delete from test where rowid not in (select max(rowid) from test group by name);
    commit;
    执行后结果为:
  2. 答:用distinct
    比如,select ditinct number from xxxxx;这样就把重复的去除了
  3. 答:可以用distinct 关键字
    select distinct aa, from tabname
    具体看你什么原因出现的重复?
    是sql语句错误,比如关联条件没有写全。
    还是数据本身就重复?

本文来源: https://www.lw50.cn/article/ebb51e1b62e0120eb834cc6e.html