设为首页 加入收藏

TOP

取重复记录最大的id列表
2014-11-24 07:50:44 来源: 作者: 【 】 浏览:2
Tags:重复 记录 最大 列表
取重复记录最大的id列表
[sql] www.2cto.com
--要求,name或tel有一个重复,则就算是重复的,取重复记录最大的id列表
if object_id('t') is not null drop table t
create table t(
id int,
name varchar(10),
tel varchar(10)
)
insert into t values(1,'zhang','11111');
insert into t values(2,'zhang','11111');
insert into t values(3,'zhang','22222');
insert into t values(4,'test','33333');
insert into t values(5,'test','12345');
insert into t values(6,'test1','55555');
insert into t values(7,'test3','33333');
/*
这个地方你来,先谢了,呵呵。。。
*/
--结果 www.2cto.com
id
3
6
7
用CTE实现方法:
[sql]
;WITH a
AS
(
SELECT
a.*,b.ID AS ID2
FROM t AS a
INNER JOIN t AS b ON (a.name = b.name or a.tel = b.tel) AND a.ID<>b.ID
),b
AS
(
SELECT id,NAME,tel FROM a AS a2 WHERE NOT EXISTS(SELECT 1 FROM a WHERE (a.name = a2.name or a.tel = a2.tel) AND a.ID2>a2.ID)
)
SELECT * FROM b
UNION
SELECT * FROM t AS a2 WHERE NOT EXISTS(SELECT 1 FROM a WHERE id=a2.ID)
/*
id NAME tel
3 zhang 22222
6 test1 55555
7 test3 33333
*/
来源:http://bbs.csdn.net/topics/390173231
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Redis命令处理流程 下一篇大型数据库的设计原则与开发技巧

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Linux_百度百科 (2025-12-26 12:51:52)
·Shell 流程控制 | 菜 (2025-12-26 12:51:49)
·TCP/UDP协议_百度百科 (2025-12-26 12:20:11)
·什么是TCP和UDP协议 (2025-12-26 12:20:09)
·TCP和UDP详解 (非常 (2025-12-26 12:20:06)