oracle去重

create table tmp_table3
as
 (SELECT seqno
                   FROM (SELECT t.seqno,ROWID,
                                ROW_NUMBER() OVER(PARTITION BY title, uin ORDER BY createtime) DUP
                           FROM calendar_info t
                          where isdelflag = 0
                            and specialtype = 1
                            --and uin = ‘30647‘
                            and comefrom = 12)
                  WHERE DUP > 1);
--删除邀请表
delete calendar_invite_info
 where calseqno in (select seqno from tmp_table3);
--更新变更表
update CALENDAR_SYNC_UPDATE
   set token       = calendar_sync_update_token.nextVal,
       action_type = 2,
       updateTime  = sysdate
 WHERE calseqno IN (select seqno from tmp_table3);
--删除活动表
delete calendar_info
 where seqno in (select seqno from tmp_table3);
时间: 2024-12-11 00:48:21

oracle去重的相关文章

oracle去重:综合了别人的记录

oracle去重:综合了别人的记录,大致有以下两种看起来顺眼. 1.delete from t where rowid not in (select min(rowid) from t group by 去重字段); 举个栗子: --去重 delete from PTW_I_METHOD_DEFINE_TEMP where id not in (select min(id) from PTW_I_METHOD_DEFINE_TEMP group by no); 2.(注意:distinct是记录

Oracle 去重

Oracle 删除重复数据只留一条 查询及删除重复记录的SQL语句 -- 1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1) -- 例: select * from orders_tmp2 where cust_nbr in (select cust_nbr from orders_tmp2 group by cust_nbr

oracle去重等基础问题

--去重查询方法一:根据id select * from sxe where id in(select min(id) from sxe group by username) order by id asc;--去重查询方法二:根据rownumselect * from (select s.*,rownum rn from sxe s ) x where x.rn in (select min(rownum) from sxe group by username) order by id asc

转转转--oracle 去重并按时间排序取第一条

select t.* from (select a.*, row_number() over(partition by 需要分组的字段 order by 更新时间 desc) rw from 表 a) t where t.rw = 1 row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的). 与rownum的区别在于:使用rownum进行

Oracle 表数据去重

Oracle数据库中重复数据怎么去除?使用数据表的时候经常会出现重复的数据,那么要怎么删除呢?下面我们就来说一说去除Oracle数据库重复数据的问题.今天我们要说的有两种方法. 一.根据rowid来去重. 我们都知道在oracle数据库表中,每条记录都有唯一的rowid来标识,这就可以做我们去重的查询条件 我们现有一张TEST表,,首先若我们要按ID,VALUE进行去重的话, DELETE TEST A WHERE NOT EXISTS (SELECT 1 FROM (SELECT ID, VA

oracle如何实现去重和分页

一:oracle实现去重: user数据表: 分两步:1.查询重复数据  2.删除重复数据 1.查询重复数据:在oracle中实现查询重复数据,可以借助于rowid这个伪列.oracle中每个表物理上都存在一个rowid的列,这个列是每行数据在oracle中唯一标识,每个表的主键可以保证数据在本表中不重复,rowid可以保证该条数据在数据库中的所有表中都不重复. --查询重复数据 用户名和密码都相同的数据叫重复数据 select u1.*,rowid from users u1 where ex

Oracle 单列去重 显示单行所有列数据

问题:test_table 表中有 a,b,c 三个字段,求根据字段a 去除重复数据,得到去重后的整行数据 根据mysql的经验尝试以下方法均失败 1.使用 distinct 关键字 (oracle查询数据中,不允许非 distinct 标注字段 ) select count(distinct a),a,b,c from test_table; 2.使用 group by (oracle查询数据中不允许非分组字段) select a,b,c from test_table group by a;

Oracle数据库,模糊查询、去重查询

分组去重查询,并执行某一个函数 :select  分组字段,聚合函数 from 表名 where 条件 group by分组字段 select  分组字段,聚合函数 from 表名 where 条件 group by分组字段 having过滤条件 例:select cno, avg(degree) from score group by cno having count(sno)>=5: 模糊查询  : like select * from 表名 where 字段 like   '字符串%'  

Oracle的去重函数 distinct

原贴地址:http://www.cnblogs.com/rainman/archive/2013/05/03/3058451.html#m0 SQL中distinct的用法 1.作用于单列 2.作用于多列 3.COUNT统计 4.distinct必须放在开头 5.其他 在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值.关键词 distinct用于返回唯一不同的值. 表A: 表B: 1.作用于单列 select distinct name from