关于Oracle去除重复数据:

1):Oracle的row_number() over函数消除重复的记录

例子:1.select d.id,d.outer_code from dict_depts_source d order by outer_code(查看重复数据)

2.select d.id,d.outer_code,row_number() over(partition by outer_code order by outer_code) row_flag from dict_depts_source d(标识重复数据)

3.delete from dict_depts_source where id in(

select id from(select d.id,d.outer_code,row_number() over(partition by outer_code order by outer_code) row_flag from dict_depts_source d)t

where t.row_flag > 1)(删除重复数据)

3.select d.id,d.outer_code,row_number() over(partition by outer_code order by outer_code) row_flag from dict_depts_source d(检查删除效果)

2)

distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用 它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。

下面先来看看例子:

table表

字段1 字段2

id name

1 a

2 b

3 c

4 c

5 b

库结构大概这样,这只是一个简单的例子,实际情况会复杂得多。

比如我想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录。

select distinct name from table

得到的结果是:

----------

name

a

b

c

好像达到效果了,可是,我想要得到的是id值呢?改一下查询语句吧:

select distinct name, id from table

结果会是:

----------

id name

1 a

2 b

3 c

4 c

5 b

distinct怎么没起作用?作用是起了的,不过他同时作用了两个字段,也就是必须得id与name都相同的才会被排除。。。。。。。

我们再改改查询语句:

select id, distinct name from table

很遗憾,除了错误信息你什么也得不到,distinct必须放在开头。难到不能把distinct放到where条件里?能,照样报错。

------------------------------------------------------------------------------------------------------------

下面方法可行:

select *, count(distinct name) from table group by name

结果:

id name count(distinct name)

1 a 1

2 b 1

3 c 1

最后一项是多余的,不用管就行了,目的达到。。。。。

group by 必须放在 order by 和 limit之前,不然会报错

转载自:http://hi.baidu.com/jlh_jianglihua/item/e1e3276abe1b4833ad3e83a5

oracle合计去掉重复,关于oracle 去掉重复数据问题相关推荐

  1. 【Java面试题】54 去掉一个Vector集合中重复的元素

    在Java中去掉一个 Vector 集合中重复的元素 1)通过Vector.contains()方法判断是否包含该元素,如果没有包含就添加到新的集合当中,适用于数据较小的情况下. import jav ...

  2. php数组如何去掉相同的元素,如何去掉php数组中的重复的元素

    如何去掉php数组中的重复的元素 发布时间:2020-07-30 09:49:32 来源:亿速云 阅读:74 作者:Leah 今天就跟大家聊聊有关如何去掉php数组中的重复的元素,可能很多人都不太了解 ...

  3. 把一个整形数组中重复的数字去掉 - 微软面试题

    请把一个整形数组中重复的数字去掉.例如:  1,   2,   0,   2,   -1,   999,   3,   999,   88  答案应该是: 1,   2,   0,   -1,   9 ...

  4. oracle 查找不重复的数据,oracle不用distinct查找不重复记录和删除重复记录

    1.oracle中怎么不用distinct查找不重复记录,users表有字段userid,username,password? 答: 第一种方法: select userid,username,pas ...

  5. oracle什么是重复组,规范化:“重复组”是什么意思?

    扬帆大鱼 英语的价值一次又一次地重复.这是重复组吗?不.在SUBJECT_MODULE中英语的多次出现不是重复组,甚至不是人们误认为重复组的两件事中的任何一个.它们也不是冗余或缺乏规范化的证据.这样的 ...

  6. Oracle 查找并删除表中的重复记录

    案例:一个应用表中的一个字段是主键,向表中插入数据时,先把数据放在临时表中(没有主键)然后再插入应用表. 这时候如果临时表中有重复数据,无论是主键字段businessid有重复,还是一整行有重复都会报 ...

  7. 小计合计总计表格_总计总计重复的Excel小计

    小计合计总计表格 Do you use Excel's Subtotal command to automatically create subtotals in a list? I prefer p ...

  8. navicat导出数据到oracle,使用Navicat premium导出oracle数据库中数据到SQL server2008数据库中...

    使用Navicat premium导出oracle数据库中数据到SQL server2008数据库中 发布时间:2018-08-20 14:41, 浏览次数:471 , 标签: Navicat pre ...

  9. oracle数据库基础知识总结,oracle知识点总结(一)

    关键字: oracle,database Oracle SQL(Oracle 9i 9.2.0.1.0) 一.DataBase 保存数据,以表的形式表现数据 二.SQL SQL(structure q ...

  10. Oracle数据库查询语句去重,Oracle数据库之SQL---select查询

    最好的学习就是实战!因此我的学习也就是从实战中展开的.在一切SQL语句中最基本的莫过于查询语句了,因此笔者也是从select语句开 前言 最好的学习就是实战!因此我的学习也就是从实战中展开的.在一切S ...

最新文章

  1. visual-reasoning 笔记
  2. Hibernate5笔记7--Hibernate缓存机制
  3. VTK:可视化之Glyph3DMapper
  4. OpenGL伽玛校正测试
  5. 【翻译】.NET 5 Preview5发布
  6. android 把异常写入到文本里,尝试在Android中将文件写入sdcard时发生FileNotFoundException(权限被拒绝)...
  7. zabbix配置mysql监控_【zabbix】zabbix配置MySQL监控
  8. vue数据定义格式_用好单元格自定义格式,让Excel按照你的要求显示数据
  9. 惊!字节实习生竟干这事到凌晨三点
  10. 与nfs相关的计算机服务设置,在服务器端配置nfs
  11. 基于SSM的二手交易平台
  12. 推荐一个简洁免费轻量级的思维导向图软件Blumind
  13. javascript 时间脚本收集
  14. 资管过程日报指标异常分析
  15. cmd 控制台 提示:请求的操作需要提升!
  16. python爬取喜马拉雅音频数据
  17. 如何获取美团外卖推广链接
  18. linux增加/删除虚拟IP地址
  19. 膳食纤维之短链脂肪酸
  20. 表单form中的submit事件

热门文章

  1. 浪潮服务器主板显示b8图,浪潮的硬件监控(ipmitool,MegaCli)
  2. PyTorch深度学习实践——对维度的认识
  3. STM32中断—EXTI外部中断
  4. prctl函数 linux,正确使用prctl()的方法
  5. Sqlite数据库操作综合及
  6. 【论文理解】Batch Normalization论文中关于BN背景和减少内部协变量偏移的解读(论文第1、2节)
  7. 椭圆曲线之GF(P)上的点,R+P,2P的CPP实现6.25
  8. 微信开发之自动添加好友的技术实现
  9. Robi改造计划更新---框架终于搭出来了
  10. [小白的Web全栈之旅]独立开发电子商务网站--管理员后台开发(一、界面开发)