数据库去重(MYSQL和ORACLE)

一、数据库中的去重操作(删除数据库中重复记录的SQL语句)主要有三种方法

(1)、rowid方法

(2)、group by 方法

(3)、distinct方法

1、用rowid方法

根据Oracle带的rowid属性,可以进行判断是否存在重复语句;

(1)、查出表1和表2中name相同的数据

Select * from table1 a Where rowid !=(select max(rowid) from table2 b Where a.name1 = b.name1 And a.name2 = b.name2......) 12345

(2)、删除表1和表2 中name相同的所有数据

Delete from table1 a Where rowid !=(select max(rowid) From table2 b Where a.name1 = b.name1 And a.name2 = b.name2.......) 12345

2、用group by方法

主要用于分组统计,一般都是使用在聚合函数中使用;

(1)、查数据

Select count(num), max(name) from student 列出表中的重复的记录数和学生名字的属性,

Group by num Having count(num) 12

1 并按照num分组后找出表中num列出现次数大于一次的。

(2)、删除数据

Delete from student Group by num Having count(num)>1 123

//删除表中num列所有重复的数据

3、用distinct方法

一般用于比较小的表进行去重,会过滤掉多余的重复记录,返回不重复的记录或字段;

(1)select distinct name from student

相关推荐
xrl201210 分钟前
ruoyi-vue2集成flowable6.7.2后端篇
数据库·ruoyi·flowable·工作流集成
java1234_小锋20 分钟前
Redis到底支不支持事务啊?
java·数据库·redis
云和恩墨1 小时前
告别 “事后救火”:7 大前置动作规避 80% 数据库故障
数据库·oracle
STLearner1 小时前
VLDB 2025 | 时间序列(Time Series)论文总结(预测,异常检测,压缩,自动化等)
数据库·人工智能·深度学习·神经网络·机器学习·数据挖掘·时序数据库
2 小时前
TIDB——TIKV——raft
数据库·分布式·tidb
不会c嘎嘎2 小时前
MySQL 指南:全面掌握用户管理与权限控制
数据库·mysql
ShadowSmartMicros2 小时前
java调用milvus数据库
java·数据库·milvus
Bug.ink2 小时前
BUUCTF——WEB(2)
数据库·sql·网络安全·buuctf
网硕互联的小客服2 小时前
Centos系统如何更改root账户用户名?需要注意什么?
linux·运维·服务器·数据库·安全
lisanmengmeng3 小时前
zentao的prod环境升级(一)
linux·运维·数据库·docker·容器·禅道