Oracle查询和过滤重复数据
对数据库某些意外情况,引起的重复数据,如何处理呢?
----------------查重复:
select *
from satisfaction_survey s
where s.as_side = 0
and s.project_no in (select ss.project_no
from satisfaction_survey ss
where ss.as_side = 0
group by ss.project_no
having count(*) > 1)
order by s.project_no, s.submit_time
思路:从预先选出的数据中(s.as_side = 0),根据特定字段(s.project_no),判断是否存在(count(*) > 1,符合条件的数据不止一条)重复数据
当然,也可以根据多个字段(in 前面的字段,用个括号括起来,in select子句的返回字段对应改变)判断是否存在重复数据
----------------------去重复:
delete from satisfaction_survey s
where s.as_side = 0
and(s.project_no/*, to_char(s.submit_time, 'yyyy-mm-dd')*/) in
(select ss.project_no/*, to_char(ss.submit_time, 'yyyy-mm-dd') */
from satisfaction_survey ss
where ss.as_side=0//根据自己实际情况,确定子句(清楚每个sql的结果集很重要)
group by ss.project_no/*, to_char(ss.submit_time, 'yyyy-mm-dd')*/
having count(*) > 1)
and rowid not in
(select max(rowid) from satisfaction_survey where as_side=0 group by project_no/*, to_char(submit_time, 'yyyy-mm-dd')*/ having count(*) > 1)
思路:在删除全部重复数据时,保留一条(and rowid not in)符合自己需求的数据
这里为了保证程序的健壮性,可以在查询数据时防止查出多条数据,在返回结果外面加一层,只取一条数据:
select *
from (SELECT ROW_NUMBER() OVER(ORDER BY s.submit_time) 插入时间, s.*
FROM satisfaction_survey s
where s.project_no = 'WW-PM-2017-RP-449'
and s.employee_no = 'BF1019589'
and s.as_side = 0
--and s.mark is not null)
and s.mark is null)
where 插入时间 = 1
这里根据时间排序,取符合条件的第一条
Oracle查询和过滤重复数据的更多相关文章
- Oracle查询表里的重复数据方法:
一.背景 一张person表,有id和name的两个字段,id是唯一的不允许重复,id相同则认为是重复的记录. 二.解决 select id from group by id having count ...
- Oracle查询表里的重复数据方法
select id from group by id having count(*) > 1 按照id分组并计数,某个id号那一组的数量超过1条则认为重复. 如何查询重复的数据 select 字 ...
- Oracle查询及删除重复数据
1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 ) 2.删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录 ) ); 3.查找表中多余的重复记录 ...
- sql 查询重复数据,删除重复数据,过滤重复数据
select * from (SELECT titleid,count(titleid) c FROM [DragonGuoShi].[dbo].[ArticleInfo] group by titl ...
- Elasticsearch去重查询/过滤重复数据(聚合)
带家好,我是马儿,这次来讲一下最近遇到的一个问题 我司某个环境的es中被导入了重复数据,导致查询的时候会出现一些重复数据,所以要我们几个开发想一些解决方案,我们聊了聊,相出了下面一些方案: 1.从源头 ...
- mysql查询表里的重复数据方法:
INSERT INTO hk_test(username, passwd) VALUES ('qmf1', 'qmf1'),('qmf2', 'qmf11') delete from hk_test ...
- EF 查询视图出现重复数据
解决方案: 由多张表组成的视图,要加实体键.而且实体键组合要能确保唯一性. 个人理解:确保唯一性,一个或多个实体键,实现了复合主键或组合主键的效果. 这样查询是,延迟加载机制,才知道哪些需要重新从数据 ...
- 手把手教你如何用java8新特性将List中按指定属性排序,过滤重复数据
在java中常常会遇到这样一个问题,在实际应用中,总会碰到对List排序并过滤重复的问题,如果List中放的只是简单的String类型过滤so easy,但是实际应用中并不会这么easy,往往List ...
- scrapy过滤重复数据和增量爬取
原文链接 前言 这篇笔记基于上上篇笔记的---<scrapy电影天堂实战(二)创建爬虫项目>,而这篇又涉及redis,所以又先熟悉了下redis,记录了下<redis基础笔记> ...
随机推荐
- loadrunner常用函数集锦
一.三个复制函数的区别: strcpy 原型:extern char *strcpy(char *dest,char *src);用法:#i nclude功能:把src所指由NULL结束的字符串复制到 ...
- WebAPI前置知识:HTTP与RestfulAPI
对HTTP协议的基本了解是能理解并使用RestFul风格API的基础,在了解了这些基础之后,使用各种RestFul的开发框架才能得心应手.我一开始使用WebApi的时候就因为对这些知识缺乏了解,觉得用 ...
- js回调函数以及同步与异步
1. 背景介绍javascript的单线程特性由于javascript语言是一门“单线程”的语言,所以,javascript就像一条流水线,仅仅是一条流水线而已,要么加工,要么包装,不能同时进行多个任 ...
- web优化及web安全攻防学习总结
web优化 前端:(高性能网站建设进阶指南) 使用gzip压缩(节省服务器的 网络带宽) 减少http请求( 减少DNS请求所耗费的时间. 减少服务器压力. 减少http请求头) 使用cdn(用户可以 ...
- 第 10 章 容器监控 - 080 - Weave Scope 容器地图
Weave Scope 容器地图 Weave Scope 的最大特点是会自动生成一张 Docker 容器地图,让我们能够直观地理解.监控和控制容器. 安装 执行如下脚本安装运行 Weave Scope ...
- legend2---开发日志11(如何提高终极开发效率)
legend2---开发日志11(如何提高终极开发效率) 一.总结 一句话总结: 实在没必要摸索着做,直接学了做,用专门的东西来做,岂不是要省时省事很多.岂不美哉. 1.vue中的滚动字幕动画效果如何 ...
- stm32WB55xx 外设资源
1.FLASH(闪存) 2.Radio System(无线系统:兼容BLE5.0与IEEE802.15.4标准,由2.4GHz射频前端.BLE和IEEE802.15.4物理层控制器组成,无线低功耗协议 ...
- springboot缓存注解——@Cacheable
@Cacheable: 1,方法运行之前,先查询Cache(缓存组件),按照cacheName指定的名字获取(CacheManager获取相应缓存) 第一次获取缓存如果没有Cache组件会自会自动创建 ...
- 2018-2019-2 20165303《网络攻防技术》Exp5 MSF基础应用
实践目标 1.一个主动攻击实践 ms17_010(成功) ms08_067(成功) 2.一个针对浏览器的攻击 ms13-008(成功唯一) ms11-050(失败) ms13-069(成功唯一) ad ...
- jieba库的使用和好玩的词云
1.jieba库基本介绍 (1).jieba库概述 jieba是优秀的中文分词第三方库 - 中文文本需要通过分词获得单个的词语 - jieba是优秀的中文分词第三方库,需要额外安装 - ...