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

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

去除表中重复行数据,可能大家立马就想到的是用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

原文地址:

转载于:https://www.cnblogs.com/zuowj/p/3887190.html

你可能感兴趣的文章
在线二分求LCA
查看>>
动态内存和智能指针
查看>>
JAVA基础知识(三):input.nextLine() 和input.next()
查看>>
Lintcode455-StudentID-Easy
查看>>
迭代目标
查看>>
ie6 margin-bottom及padding失效,
查看>>
tp空操作和空控制器处理
查看>>
栈、队列和数组
查看>>
在ubuntu server上安装沸腾时刻环境
查看>>
【Unity入门】编辑器常用视图介绍
查看>>
bzoj-2243 2243: [SDOI2011]染色(树链剖分)
查看>>
在CentOS上构建.net自动化编译环境
查看>>
企业信息管理与大数据
查看>>
document.ready和window.onload的区别
查看>>
PL/SQL集合 ----- varrays
查看>>
BZOJ 3585: mex【莫队+树状数组】
查看>>
Perl数据类型
查看>>
深度和广度查找
查看>>
Windows Server 2003开机自动启动MySQL服务设置方法
查看>>
js math atan2
查看>>