欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > sql分組后二次匯總(處理表重復記錄查詢和刪除)的實現方法

sql分組后二次匯總(處理表重復記錄查詢和刪除)的實現方法

熱門標簽:千呼電話機器人可以試用嗎 400電話辦理泰安 安卡拉地圖標注app 電銷需要外呼系統嗎 電話機器人怎么代理商 零成本地圖標注賺錢 互聯網電話外呼系統 我要地圖標注數量有限制嗎 家庭農場地圖標注名稱怎樣起名

--處理表重復記錄(查詢和刪除)
/******************************************************************************************************************************************************
1、Num、Name相同的重復值記錄,沒有大小關系只保留一條
2、Name相同,ID有大小關系時,保留大或小其中一個記錄
整理人:中國風(Roy)

日期:2008.06.06
******************************************************************************************************************************************************/

--1、用于查詢重復處理記錄(如果列沒有大小關系時2000用生成自增列和臨時表處理,SQL2005用row_number函數處理)

--> --> (Roy)生成測試數據
 

if not object_id('Tempdb..#T') is null
 drop table #T
Go
Create table #T([ID] int,[Name] nvarchar(1),[Memo] nvarchar(2))
Insert #T
select 1,N'A',N'A1' union all
select 2,N'A',N'A2' union all
select 3,N'A',N'A3' union all
select 4,N'B',N'B1' union all
select 5,N'B',N'B2'
Go


--I、Name相同ID最小的記錄(推薦用1,2,3),方法3在SQl05時,效率高于1、2
方法1:
Select * from #T a where not exists(select 1 from #T where Name=a.Name and IDa.ID)

方法2:
select a.* from #T a join (select min(ID)ID,Name from #T group by Name) b on a.Name=b.Name and a.ID=b.ID

方法3:
select * from #T a where ID=(select min(ID) from #T where Name=a.Name)

方法4:
select a.* from #T a join #T b on a.Name=b.Name and a.ID>=b.ID group by a.ID,a.Name,a.Memo having count(1)=1

方法5:
select * from #T a group by ID,Name,Memo having ID=(select min(ID)from #T where Name=a.Name)

方法6:
select * from #T a where (select count(1) from #T where Name=a.Name and IDa.ID)=0

方法7:
select * from #T a where ID=(select top 1 ID from #T where Name=a.name order by ID)

方法8:
select * from #T a where ID!>all(select ID from #T where Name=a.Name)

方法9(注:ID為唯一時可用):
select * from #T a where ID in(select min(ID) from #T group by Name)

--SQL2005:

方法10:
select ID,Name,Memo from (select *,min(ID)over(partition by Name) as MinID from #T a)T where ID=MinID

方法11:

select ID,Name,Memo from (select *,row_number()over(partition by Name order by ID) as MinID from #T a)T where MinID=1

生成結果:
/*
ID          Name Memo
----------- ---- ----
1           A    A1
4           B    B1

(2 行受影響)
*/


--II、Name相同ID最大的記錄,與min相反:
方法1:
Select * from #T a where not exists(select 1 from #T where Name=a.Name and ID>a.ID)

方法2:
select a.* from #T a join (select max(ID)ID,Name from #T group by Name) b on a.Name=b.Name and a.ID=b.ID order by ID

方法3:
select * from #T a where ID=(select max(ID) from #T where Name=a.Name) order by ID

方法4:
select a.* from #T a join #T b on a.Name=b.Name and a.ID=b.ID group by a.ID,a.Name,a.Memo having count(1)=1

方法5:
select * from #T a group by ID,Name,Memo having ID=(select max(ID)from #T where Name=a.Name)

方法6:
select * from #T a where (select count(1) from #T where Name=a.Name and ID>a.ID)=0

方法7:
select * from #T a where ID=(select top 1 ID from #T where Name=a.name order by ID desc)

方法8:
select * from #T a where ID!all(select ID from #T where Name=a.Name)

方法9(注:ID為唯一時可用):
select * from #T a where ID in(select max(ID) from #T group by Name)

--SQL2005:

方法10:
select ID,Name,Memo from (select *,max(ID)over(partition by Name) as MinID from #T a)T where ID=MinID

方法11:
select ID,Name,Memo from (select *,row_number()over(partition by Name order by ID desc) as MinID from #T a)T where MinID=1

生成結果2:
/*
ID          Name Memo
----------- ---- ----
3           A    A3
5           B    B2

(2 行受影響)
*/

--2、刪除重復記錄有大小關系時,保留大或小其中一個記錄


--> --> (Roy)生成測試數據

if not object_id('Tempdb..#T') is null
    drop table #T
Go
Create table #T([ID] int,[Name] nvarchar(1),[Memo] nvarchar(2))
Insert #T
select 1,N'A',N'A1' union all
select 2,N'A',N'A2' union all
select 3,N'A',N'A3' union all
select 4,N'B',N'B1' union all
select 5,N'B',N'B2'
Go

--I、Name相同ID最小的記錄(推薦用1,2,3),保留最小一條
方法1:
delete a from #T a where  exists(select 1 from #T where Name=a.Name and IDa.ID)

方法2:
delete a  from #T a left join (select min(ID)ID,Name from #T group by Name) b on a.Name=b.Name and a.ID=b.ID where b.Id is null

方法3:
delete a from #T a where ID not in (select min(ID) from #T where Name=a.Name)

方法4(注:ID為唯一時可用):
delete a from #T a where ID not in(select min(ID)from #T group by Name)

方法5:
delete a from #T a where (select count(1) from #T where Name=a.Name and IDa.ID)>0

方法6:
delete a from #T a where ID>(select top 1 ID from #T where Name=a.name order by ID)

方法7:
delete a from #T a where ID>any(select ID from #T where Name=a.Name)

select * from #T

生成結果:
/*
ID          Name Memo
----------- ---- ----
1           A    A1
4           B    B1

(2 行受影響)
*/


--II、Name相同ID保留最大的一條記錄:

方法1:
delete a from #T a where  exists(select 1 from #T where Name=a.Name and ID>a.ID)

方法2:
delete a  from #T a left join (select max(ID)ID,Name from #T group by Name) b on a.Name=b.Name and a.ID=b.ID where b.Id is null

方法3:
delete a from #T a where ID not in (select max(ID) from #T where Name=a.Name)

方法4(注:ID為唯一時可用):
delete a from #T a where ID not in(select max(ID)from #T group by Name)

方法5:
delete a from #T a where (select count(1) from #T where Name=a.Name and ID>a.ID)>0

方法6:
delete a from #T a where ID>(select top 1 ID from #T where Name=a.name order by ID desc)

方法7:
delete a from #T a where IDany(select ID from #T where Name=a.Name)


select * from #T
/*
ID          Name Memo
----------- ---- ----
3           A    A3
5           B    B2

(2 行受影響)
*/

--3、刪除重復記錄沒有大小關系時,處理重復值


--> --> (Roy)生成測試數據
 
if not object_id('Tempdb..#T') is null
    drop table #T
Go
Create table #T([Num] int,[Name] nvarchar(1))
Insert #T
select 1,N'A' union all
select 1,N'A' union all
select 1,N'A' union all
select 2,N'B' union all
select 2,N'B'
Go

方法1:
if object_id('Tempdb..#') is not null
    drop table #
Select distinct * into # from #T--排除重復記錄結果集生成臨時表#

truncate table #T--清空表

insert #T select * from #    --把臨時表#插入到表#T中

--查看結果
select * from #T

/*
Num         Name
----------- ----
1           A
2           B

(2 行受影響)
*/

--重新執行測試數據后用方法2
方法2:

alter table #T add ID int identity--新增標識列
go
delete a from  #T a where  exists(select 1 from #T where Num=a.Num and Name=a.Name and ID>a.ID)--只保留一條記錄
go
alter table #T drop column ID--刪除標識列

--查看結果
select * from #T

/*
Num         Name
----------- ----
1           A
2           B

(2 行受影響)

*/

--重新執行測試數據后用方法3
方法3:
declare Roy_Cursor cursor local for
select count(1)-1,Num,Name from #T group by Num,Name having count(1)>1
declare @con int,@Num int,@Name nvarchar(1)
open Roy_Cursor
fetch next from Roy_Cursor into @con,@Num,@Name
while @@Fetch_status=0
begin
    set rowcount @con;
    delete #T where Num=@Num and Name=@Name
    set rowcount 0;
    fetch next from Roy_Cursor into @con,@Num,@Name
end
close Roy_Cursor
deallocate Roy_Cursor

--查看結果
select * from #T
/*
Num         Name
----------- ----
1           A
2           B

(2 行受影響)

您可能感興趣的文章:
  • SQL SERVER 分組求和sql語句
  • 顯示同一分組中的其他元素的sql語句
  • sql獲取分組排序后數據的腳本
  • SQL進行排序、分組、統計的10個新技巧分享
  • SQL分組排序去重復的小實例
  • 以數據庫字段分組顯示數據的sql語句(詳細介紹)
  • SQL中Group分組獲取Top N方法實現可首選row_number
  • Sql Server:多行合并成一行,并做分組統計的兩個方法
  • Sql Server 分組統計并合計總數及WITH ROLLUP應用
  • SQL語句分組獲取記錄的第一條數據的方法
  • sqlserver巧用row_number和partition by分組取top數據
  • 一句Sql把縱向表轉為橫向表,并分別分組求平均和總平均值
  • sql 分組查詢問題
  • SQLserver 實現分組統計查詢(按月、小時分組)
  • 分組后分組合計以及總計SQL語句(稍微整理了一下)

標簽:東營 新鄉 來賓 黃山 池州 文山 濱州 大同

巨人網絡通訊聲明:本文標題《sql分組后二次匯總(處理表重復記錄查詢和刪除)的實現方法》,本文關鍵詞  sql,分組,后,二次,匯總,處理,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《sql分組后二次匯總(處理表重復記錄查詢和刪除)的實現方法》相關的同類信息!
  • 本頁收集關于sql分組后二次匯總(處理表重復記錄查詢和刪除)的實現方法的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    国产亚洲一二三区| 国产精品中文字幕欧美| 欧洲第一无人区观看| 五月婷婷一区二区三区| 国产婷婷色一区二区三区四区 | 欧美久久久久免费| 中文字幕日本乱码精品影院| 国产高清成人在线| 刘亦菲国产毛片bd| 国产欧美一区视频| 国产乱码精品一区二区三| 非洲一级黄色片| 精品国产电影一区二区| 青草av.久久免费一区| 日本japanese极品少妇| 欧美一区二区三区成人| 日韩在线a电影| 女同性恋一区二区三区| 91精品国产高清一区二区三区蜜臀 | 欧美高清在线一区| 国产成人免费9x9x人网站视频| 亚洲图片第一页| 中文字幕成人网| 成人18视频在线播放| 午夜少妇久久久久久久久| 亚洲视频电影在线| 下面一进一出好爽视频| 欧美情侣在线播放| 日韩精品一二三| 亚洲精品乱码久久久久久久久久久久| 日韩欧美亚洲一区二区| 九九国产精品视频| 老司机精品免费视频| 国产精品国产三级国产普通话蜜臀 | 亚洲欧美日韩久久| 国产又粗又猛又爽又黄| 欧美日韩aaaaa| 美女在线视频一区| 懂色av粉嫩av浪潮av| 中文字幕不卡三区| 韩国三级与黑人| 日韩一区二区三区高清免费看看| 久久成人精品无人区| 国产精品综合激情| 亚洲欧美日本韩国| 国产肥白大熟妇bbbb视频| 中国毛片直接看| 中文字幕亚洲精品在线观看| 杨幂一区二区国产精品| 欧美一级二级三级蜜桃| 国产一区二区三区美女| 国产精品成人免费观看| 亚洲.国产.中文慕字在线| 日韩精品电影一区二区| 日本一区二区三区四区在线视频| 91在线观看污| 日韩欧美123| 丁香啪啪综合成人亚洲小说| 欧美日韩激情在线| 狠狠久久亚洲欧美| 在线视频一区二区三| 日本欧美在线看| 99久久99久久精品国产| 午夜精品久久久久久久99水蜜桃 | av片在线免费看| 亚洲人妖av一区二区| 亚洲av无码国产精品久久| 国产精品电影一区二区| 成人手机在线免费视频| 国产午夜精品久久久久久久| 91小视频在线| 2020日本不卡一区二区视频| 日本r级电影在线观看 | 国产欧美日产一区| 久久久久久久久久久久国产精品| 国产亚洲欧美一区在线观看| 潘金莲一级淫片aaaaa| 2021中文字幕一区亚洲| 亚洲欧美激情一区二区三区| 国产亚洲精品aa| 亚洲精品一二三四| 中文文精品字幕一区二区| 一边摸一边做爽的视频17国产| 欧美国产综合一区二区| 在线免费观看污视频| 国产精品乱子久久久久| 久久久久亚洲无码| 亚洲人成伊人成综合网小说| 欧美激情aaa| 亚洲欧美日韩小说| 91麻豆精品久久毛片一级| 日韩制服丝袜av| 欧美在线观看视频一区二区 | 一区二区三区伦理片| 亚洲一区二区三区国产| 午夜爽爽爽男女免费观看| 伦理电影国产精品| 欧美精品123区| 成人app网站| 国产丝袜美腿一区二区三区| a视频免费观看| 亚洲美女屁股眼交| 三上悠亚在线观看视频| 久久国产精品99久久久久久老狼| 欧美电影影音先锋| 99久久夜色精品国产网站| 久久久九九九九| 香蕉视频黄色在线观看| 亚洲国产cao| 在线一区二区视频| 国产成人一级电影| 久久九九影视网| 中文字幕免费高清| 免费观看一级欧美片| 555www色欧美视频| 亚洲少妇中出一区| 亚洲男人天堂av| 色哟哟一一国产精品| 蜜臀av一区二区| 欧美一区二区视频在线观看2020| 91色视频在线| 亚洲男人都懂的| 91国偷自产一区二区三区观看 | 亚洲精品一二三| www深夜成人a√在线| 国产精品亚洲人在线观看| 欧美精品一区二区三区蜜臀| 黄色在线观看av| 日韩福利电影在线| 日韩一区二区免费在线电影| 亚洲少妇18p| 天堂久久久久va久久久久| 欧美精品久久久久久久多人混战| 久久人妻少妇嫩草av蜜桃| 亚洲国产日韩a在线播放| 欧美日韩一区中文字幕| 午夜视频在线免费看| 亚洲一区二区三区免费视频| 欧美美女喷水视频| 免费a v网站| 日韩成人午夜电影| 精品毛片乱码1区2区3区| 91l九色lporny| 国产真实乱偷精品视频免| 久久久久久久综合狠狠综合| 欧美成人久久久免费播放| 日本精品免费观看高清观看| 成人动漫一区二区三区| 日韩美女视频一区二区| 亚洲二区在线播放| 国模大尺度视频| 亚洲成人午夜影院| 日韩欧美激情一区| 无码一区二区三区在线| 国产成人午夜精品影院观看视频| 国产精品福利影院| 欧美在线三级电影| 国产精品麻豆入口| 国产一区视频网站| 中文字幕在线不卡一区二区三区| 欧美写真视频网站| 午夜视频在线观看国产| 美女脱光内衣内裤视频久久网站| 久久午夜羞羞影院免费观看| 91视频青青草| 日本wwwwwww| 久久99蜜桃精品| 中文字幕在线一区二区三区| 欧美午夜一区二区三区| 黄瓜视频污在线观看| 成人综合在线视频| 亚洲一区二区三区中文字幕在线 | 丰满亚洲少妇av| 一区二区三区四区国产精品| 日韩一区二区免费在线观看| 国产尤物在线播放| www.四虎精品| 九九精品视频在线看| 亚洲乱码一区二区三区在线观看| 67194成人在线观看| 91久久久久久久久久久久久久| 免费欧美一级片| 国精品**一区二区三区在线蜜桃 | jizz18女人高潮| 午夜少妇久久久久久久久| 99热超碰在线| 国产精品一区二区久久不卡| 一级中文字幕一区二区| 亚洲精品一区二区三区影院| 91国偷自产一区二区三区观看| 久久久久久九九九九九| 99久久综合狠狠综合久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 中文字幕亚洲不卡| 欧美一二三四在线| 黄色一级片中国| 性少妇bbw张开| 欧美一区二区三区影院| 国产精品香蕉一区二区三区| 午夜激情一区二区三区|