取重复记录最大的id列表
生活随笔
收集整理的這篇文章主要介紹了
取重复记录最大的id列表
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
--要求,name或tel有一個(gè)重復(fù),則就算是重復(fù)的,取重復(fù)記錄最大的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');
/*
這個(gè)地方你來(lái),先謝了,呵呵。。。
*/
--結(jié)果
id
3
6
7
用CTE實(shí)現(xiàn)方法:;WITH a AS ( SELECT a.*,b.ID AS ID2 FROM t AS aINNER 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
用CTE實(shí)現(xiàn)方法:;WITH a AS ( SELECT a.*,b.ID AS ID2 FROM t AS aINNER 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
轉(zhuǎn)載于:https://www.cnblogs.com/wuxi88/archive/2013/01/02/5466750.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的取重复记录最大的id列表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 女人做梦梦到蚂蟥是什么征兆
- 下一篇: wordpress在新窗口打开留言者链接