婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 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分組后二次匯總(處理表重復記錄查詢和刪除)的實現方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    色一区在线观看| 日韩一级黄色片| 91精品福利在线一区二区三区| 国产精品美女久久久久久2018| 亚洲高清不卡在线观看| 欧美精选午夜久久久乱码6080| 亚洲五月六月丁香激情| 欧美视频在线播放| 秋霞电影网一区二区| 久久影院午夜片一区| 国产**成人网毛片九色| 综合在线观看色| 欧美日韩一区二区三区在线看| 五月天亚洲精品| 久久蜜桃av一区精品变态类天堂| 国产成人av影院| 亚洲综合色在线| 日韩欧美成人激情| 91蝌蚪porny| 麻豆精品蜜桃视频网站| 国产精品视频你懂的| 色欧美片视频在线观看| 人人精品人人爱| 欧美国产精品一区二区| 欧美亚洲尤物久久| 国内不卡的二区三区中文字幕| 国产偷v国产偷v亚洲高清| 99久久99久久免费精品蜜臀| 日韩精品电影在线| 欧美国产精品一区二区三区| 欧美性极品少妇| 日韩av二区在线播放| 国产精品久久夜| 欧美一级xxx| 成人av资源站| 美女高潮久久久| 亚洲欧美另类综合偷拍| 久久久精品欧美丰满| 欧美日韩一级黄| 99久久99久久免费精品蜜臀| 视频一区视频二区中文| 国产精品视频在线看| 91精品国产91热久久久做人人| 91麻豆免费看| 国产乱码精品一区二区三区忘忧草| 亚洲色欲色欲www| 欧美一区二区三区影视| 欧美日韩精品专区| 色综合久久中文字幕综合网| 国产乱码精品一区二区三区五月婷| 天天综合网天天综合色| 亚洲综合久久av| 国产亚洲欧美一区在线观看| 色天使久久综合网天天| 成人国产精品视频| 国产91精品久久久久久久网曝门| 精品一区二区日韩| 日韩电影一区二区三区| 亚洲成人久久影院| 污片在线观看一区二区 | 欧美精品自拍偷拍动漫精品| 色偷偷一区二区三区| 91在线免费播放| 99久久精品99国产精品| 国产成人精品亚洲午夜麻豆| 蜜臀a∨国产成人精品| 视频一区二区中文字幕| 亚洲午夜视频在线| 日韩av网站在线观看| 亚洲国产精品成人综合| 国产精品免费人成网站| 亚洲图片另类小说| 亚洲综合色视频| 亚瑟在线精品视频| 男人的j进女人的j一区| 日韩不卡在线观看日韩不卡视频| 天天综合日日夜夜精品| 亚洲高清久久久| 免费欧美在线视频| 国产成人啪免费观看软件| 91色.com| 在线不卡a资源高清| 精品国产凹凸成av人导航| 久久精品在这里| 亚洲日本在线观看| 日韩精品国产精品| 国产精品白丝av| 欧美亚洲综合色| 欧美精品一区二区三区在线| 日韩一区有码在线| 日韩高清在线一区| av资源网一区| 欧美电影一区二区三区| 国产清纯在线一区二区www| 亚洲精品久久久久久国产精华液| 美腿丝袜在线亚洲一区| 99国产精品久久久久| 欧美日韩黄视频| 国产精品视频免费| 免费在线观看日韩欧美| av高清不卡在线| 欧美欧美欧美欧美| 自拍视频在线观看一区二区| 日韩中文字幕一区二区三区| 成人18精品视频| 日韩欧美精品在线| 一区二区三区波多野结衣在线观看| 免费人成精品欧美精品| 91成人国产精品| 国产色产综合产在线视频| 日韩精品福利网| 91麻豆国产精品久久| 国产校园另类小说区| 亚洲一区二区五区| 国产.精品.日韩.另类.中文.在线.播放| 欧美日韩久久久久久| 亚洲欧美日韩系列| 成人视屏免费看| www久久精品| 久久国产精品区| 欧美美女一区二区三区| 亚洲一二三级电影| 91小视频在线免费看| 欧美国产激情二区三区 | 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 亚洲综合小说图片| av在线播放不卡| 国产精品视频在线看| 成人免费毛片aaaaa**| 久久久久久久久久久久久夜| 久久精品国产在热久久| 在线成人av网站| 日韩1区2区日韩1区2区| 在线免费观看日本一区| 亚洲欧洲99久久| 色综合天天视频在线观看| 亚洲人一二三区| 一本大道av伊人久久综合| 亚洲视频你懂的| 91官网在线观看| 亚洲小说欧美激情另类| 欧美日韩1234| 麻豆精品在线观看| 亚洲精品在线观看视频| 日精品一区二区三区| 日韩视频在线永久播放| 日韩一区精品字幕| 精品国产三级电影在线观看| 国产乱码字幕精品高清av| 亚洲国产精品二十页| 97精品久久久久中文字幕| 亚洲男人的天堂一区二区| 在线观看日韩av先锋影音电影院| 亚洲欧洲成人av每日更新| 欧美综合久久久| 爽好多水快深点欧美视频| 精品国产电影一区二区| 国产a久久麻豆| 有码一区二区三区| 欧美日韩国产片| 国产一区二区三区精品欧美日韩一区二区三区| 久久美女高清视频| 99久久伊人网影院| 一区二区三区色| 久久久影院官网| 在线观看欧美精品| 韩国v欧美v亚洲v日本v| 国产精品免费aⅴ片在线观看| 成人免费高清视频在线观看| 亚洲日本乱码在线观看| 欧美精品久久久久久久多人混战 | 一本色道久久综合亚洲精品按摩| 亚洲第一搞黄网站| 欧美mv日韩mv国产网站| 91丝袜美腿高跟国产极品老师| 日韩av一级电影| 亚洲欧美一区二区三区久本道91 | 欧美午夜一区二区| 国产九色sp调教91| 亚洲成人精品影院| 欧美激情一区二区在线| 欧美日韩一区 二区 三区 久久精品| 国产一区二区不卡在线| 首页国产丝袜综合| 国产精品网站在线| 精品国产免费人成电影在线观看四季| 国产成人精品三级| 蜜臀av国产精品久久久久| 亚洲综合在线视频| 国产精品美女一区二区在线观看| 欧美一区二区三区四区久久| 91久久香蕉国产日韩欧美9色| 国产精品一区二区男女羞羞无遮挡| 亚洲第一电影网| 亚洲欧美激情插| 国产精品久久影院| 国产精品麻豆久久久| 久久综合一区二区| 91精品国产欧美一区二区18| 欧美色爱综合网|