oracle合计去掉重复,关于oracle 去掉重复数据问题
关于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 去掉重复数据问题相关推荐
- 【Java面试题】54 去掉一个Vector集合中重复的元素
在Java中去掉一个 Vector 集合中重复的元素 1)通过Vector.contains()方法判断是否包含该元素,如果没有包含就添加到新的集合当中,适用于数据较小的情况下. import jav ...
- php数组如何去掉相同的元素,如何去掉php数组中的重复的元素
如何去掉php数组中的重复的元素 发布时间:2020-07-30 09:49:32 来源:亿速云 阅读:74 作者:Leah 今天就跟大家聊聊有关如何去掉php数组中的重复的元素,可能很多人都不太了解 ...
- 把一个整形数组中重复的数字去掉 - 微软面试题
请把一个整形数组中重复的数字去掉.例如: 1, 2, 0, 2, -1, 999, 3, 999, 88 答案应该是: 1, 2, 0, -1, 9 ...
- oracle 查找不重复的数据,oracle不用distinct查找不重复记录和删除重复记录
1.oracle中怎么不用distinct查找不重复记录,users表有字段userid,username,password? 答: 第一种方法: select userid,username,pas ...
- oracle什么是重复组,规范化:“重复组”是什么意思?
扬帆大鱼 英语的价值一次又一次地重复.这是重复组吗?不.在SUBJECT_MODULE中英语的多次出现不是重复组,甚至不是人们误认为重复组的两件事中的任何一个.它们也不是冗余或缺乏规范化的证据.这样的 ...
- Oracle 查找并删除表中的重复记录
案例:一个应用表中的一个字段是主键,向表中插入数据时,先把数据放在临时表中(没有主键)然后再插入应用表. 这时候如果临时表中有重复数据,无论是主键字段businessid有重复,还是一整行有重复都会报 ...
- 小计合计总计表格_总计总计重复的Excel小计
小计合计总计表格 Do you use Excel's Subtotal command to automatically create subtotals in a list? I prefer p ...
- navicat导出数据到oracle,使用Navicat premium导出oracle数据库中数据到SQL server2008数据库中...
使用Navicat premium导出oracle数据库中数据到SQL server2008数据库中 发布时间:2018-08-20 14:41, 浏览次数:471 , 标签: Navicat pre ...
- oracle数据库基础知识总结,oracle知识点总结(一)
关键字: oracle,database Oracle SQL(Oracle 9i 9.2.0.1.0) 一.DataBase 保存数据,以表的形式表现数据 二.SQL SQL(structure q ...
- Oracle数据库查询语句去重,Oracle数据库之SQL---select查询
最好的学习就是实战!因此我的学习也就是从实战中展开的.在一切SQL语句中最基本的莫过于查询语句了,因此笔者也是从select语句开 前言 最好的学习就是实战!因此我的学习也就是从实战中展开的.在一切S ...
最新文章
- visual-reasoning 笔记
- Hibernate5笔记7--Hibernate缓存机制
- VTK:可视化之Glyph3DMapper
- OpenGL伽玛校正测试
- 【翻译】.NET 5 Preview5发布
- android 把异常写入到文本里,尝试在Android中将文件写入sdcard时发生FileNotFoundException(权限被拒绝)...
- zabbix配置mysql监控_【zabbix】zabbix配置MySQL监控
- vue数据定义格式_用好单元格自定义格式,让Excel按照你的要求显示数据
- 惊!字节实习生竟干这事到凌晨三点
- 与nfs相关的计算机服务设置,在服务器端配置nfs
- 基于SSM的二手交易平台
- 推荐一个简洁免费轻量级的思维导向图软件Blumind
- javascript 时间脚本收集
- 资管过程日报指标异常分析
- cmd 控制台 提示:请求的操作需要提升!
- python爬取喜马拉雅音频数据
- 如何获取美团外卖推广链接
- linux增加/删除虚拟IP地址
- 膳食纤维之短链脂肪酸
- 表单form中的submit事件
热门文章
- 浪潮服务器主板显示b8图,浪潮的硬件监控(ipmitool,MegaCli)
- PyTorch深度学习实践——对维度的认识
- STM32中断—EXTI外部中断
- prctl函数 linux,正确使用prctl()的方法
- Sqlite数据库操作综合及
- 【论文理解】Batch Normalization论文中关于BN背景和减少内部协变量偏移的解读(论文第1、2节)
- 椭圆曲线之GF(P)上的点,R+P,2P的CPP实现6.25
- 微信开发之自动添加好友的技术实现
- Robi改造计划更新---框架终于搭出来了
- [小白的Web全栈之旅]独立开发电子商务网站--管理员后台开发(一、界面开发)