博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL语句技巧之去除重复行
阅读量:5749 次
发布时间:2019-06-18

本文共 617 字,大约阅读时间需要 2 分钟。

去除表中重复行数据,可能大家立马就想到的是用DISINTCT关键字,但DISINTCT只能是去除表中所有列都相同的行,若碰到需要去除表中多个字段重复的行(即:部份相同,部份不相同),那么该如何做呢?我通过多年数据库编写经验,整理了如下方法,供大家参考和使用。

方法1:适用于返回较少字段

select F1,F2,F3,MAX(F4) FROM TABLENAME GROUP BY F1,F2,F3

方法2:适用于返回行所有字段,需指定不相同的字段

select * FROM TABLENAME T where F4=(select MAX(F4) from TABLENAME where T.F1=F1 and T.F2=F2 and T.F3=F3)

方法3:适用于返回行所有字段,需指定不相同的字段【找出需要去除的行】

SELECT T1.* FROM TABLENAME AS T1,(SELECT F1,F2
,MAX(F3) AS F3 FROM TABLENAME GROUP BY F1,F2 HAVING COUNT(*)>1) AS T2
WHERE
 T1.F3<T2.F3 AND T1.F1=T2.F1 AND T1.F2=T2.F2

原文地址:

本文转自 梦在旅途 博客园博客,原文链接:http://www.cnblogs.com/zuowj/p/3887190.html  ,如需转载请自行联系原作者

你可能感兴趣的文章
企业分布式微服务云架构技术分享 Spring Cloud + Spring Boot + Mybatis + shiro + RestFul + 微服务...
查看>>
rhel6.8安装elasticsearch-6.1.3.tar.gz遇到的问题以及集群配置
查看>>
文本文件命令(wc,cut,sort,uniq)及常用参数
查看>>
IIS默认网站密码解决办法
查看>>
23. PowerShell -- 定义文本,密码和用户交互处理
查看>>
我的友情链接
查看>>
Tomcat的性能与最大并发(1000)
查看>>
正弦定理、余弦定理
查看>>
IT人的自我导向型学习:学习的1个理念和2个心态(1)
查看>>
Eclipse有用的快捷键
查看>>
Bitlocker企业安全加密管理系列-2
查看>>
关于rip的跳数
查看>>
最短无序连续子数组 Shortest Unsorted Continuous Subarray
查看>>
MariaDB-SQL语句
查看>>
SQL: DDL, DML,表定义与含义
查看>>
Java并发笔记(未完待续)
查看>>
我的友情链接
查看>>
HP iLO There are pending changes that may not take effect until ILO is reset
查看>>
如何生成linux动态库
查看>>
关于switchport Port-security 使用遇到的一些问题
查看>>