SQL表内查重和删重
###查询重复记录
select * from my_tab where dup_col in(select dup_col from my_tabgroup by dup_col having count(dup_col)>1)order by dup_col;
###查询重复记录(多个条件)
select * from my_tab as t1
where
(
select count(*) from my_tab t2
where
t2.col_1=t1.col_1 and
t2.col_2=t1.col_2 and
t2.col_3=t1.col_3 and
t2.col_4=t1.col_4
)>1;
###删除重复记录(只留一条)
PG:使用ctid
delete from my_tab where dup_col in (select dup_col from my_tab group by dup_col having count(dup_col) > 1) and ctid not in (select min(ctid) from my_tab group by dup_col having count(dup_col)>1);
delete from table_1 where (col_1,col_2,col_3) in (select col_1,col_2,col_3 from table_1 group by col_1,col_2,col_3 having count(*) > 1) and ctid not in (select min(ctid) from table_1 group by col_1,col_2,col_3 having count(*)>1);
ORACLE:使用rowid
delete from my_tab where dup_col in (select dup_col from my_tab group by dup_col having count(dup_col) > 1) and rowid not in (select min(rowid) from my_tab group by dup_col having count(dup_col)>1);
SQL表内查重和删重相关推荐
- sql表内数据默认_数据库篇-第一章:数据库基本概念
基础知识学习,面试必备,关注吧 骚年 01 第一,什么是数据库? 维基百科上是这样定义的: 所谓"数据库"是以一定方式储存在一起.能予多个用户共享.具有尽可能小的冗余度.与应用程序 ...
- Database之SQLSever:SQLSever数据表管理(GUI法/SQL语句命令法两种方法实现建立表、修改表,以及增、删、改、查)之详细攻略
Database之SQLSever:SQLSever数据表管理(GUI法/SQL语句命令法两种方法实现建立表.修改表,以及增.删.改.查)之详细攻略 目录 一.两种方法建立表.修改表,插入多条数据记录 ...
- mysql identity sql,SQL Server的Identity字段使用/复制/重设
SQL Server的Identity字段使用/复制/重设 在数据库中, 常用的一个流水编号通常会使用 identity 字段来进行设置, 这种编号的好处是一定不会重复, 而且一定是唯一的, 这对ta ...
- Mysql —— C语言链接mysql数据库,命令行形式(getopt()函数),用户、用户组增删改查(用户组表内有用户控制的策略字段)
函数说明--getopt(): 函数说明 getopt()用来分析命令行参数.参数argc和argv分别代表参数个数和内容,跟main()函数的命令行参数是一样的. optstring中的指定的内容的 ...
- ORACLE 普通表转换成分区表(在线重定义)
在一个高可用系统中,如果需要改变一个表的定义是一件比较棘手的问题,尤其是对于7×24系统.Oracle提供的基本语法基本可以满足一般性修改,但是对于把普通堆表改为分区表,把索引组织表修改为堆表等操作就 ...
- SQL语句多表查询:【多表连查】和【子查询】
SQL语句多表查询:[多表连查]和[子查询] 说明:insert.update.delete只针对[一张表]执行操作. 说明:select可以查询一张表.也可以查询多张表. 说明:多表查询分为:[多表 ...
- ../include/my_global.h:1107: 错误:对 C++ 内建类型‘bool’的重声明
在mysql安装的过程中,如果make的时候出现如下错误: 1 ../include/my_global.h:1107: 错误:对 C++ 内建类型'bool'的重声明 则需要安装gcc-c++,一般 ...
- Database之SQLSever:SQL命令实现查询之多表查询、嵌套查询、分页复杂查询,删除表内重复记录数据、连接(join、left join和right join简介及其区别)等案例之详细攻略
Database之SQLSever:SQL命令实现查询之多表查询.嵌套查询.分页复杂查询,删除表内重复记录数据.连接(join.left join和right join简介及其区别)等案例之详细攻略 ...
- SQL语句---多表联查、改、删
SQL语句-多表联查.改.删 1.多表联查 select* from Student t1 inner join Teacher t2 on t1.no=t2.no where t2.Tname='M ...
最新文章
- html5 jquery版工作流设计器,基于jQuery的web在线流程图设计器GooFlow
- OpenWRT 随记
- java学习路线_java学习路线_我的入坑路
- 现在也是只能谢谢随笔了,但是在以后收货的日子里会有更多的感想记下
- 前端学习(544):node的全局模块
- 三次握手 四次握手 与socket函数的关系
- python进程池一个进程卡住_python进程池,每个进程都有超时
- 可用于企业的 7 个最佳开源 Web 服务器
- inDesign教程,如何创建具有吸引力的边注栏?
- 移动硬盘的格式化——兼容Mac和Windows
- 黑猴子的家:Scala 常用类型
- 抖音xg8404 X-Gorgon算法 IOS苹果协议算法
- 【量化交易】永久投资组合,海龟交易法则阅读,回测与讨论
- NULL 指针在不同平台下的表现引发程序报错(C 语言)
- Android微信支付订单支付失败的问题
- RHEL下编译wireshark源码
- 网易2017实习生笔试6
- 深度学习论文: YOLOv6 v3.0: A Full-Scale Reloading及其PyTorch实现
- legend分栏 matlab_Matlab设置Legend横排、分块
- 7-21 求特殊方程的正整数解