2014. 7. 22. 11:46
MSSQL
1. [user_id],[account_seq] 필드에서 중복행 찾기
SELECT [user_id],[account_seq], count(*) AS insertCount FROM [dbo].[tbl_Assign] GROUP BY [user_id],[account_seq] HAVING count(*) > 1
2. [user_id],[account_seq] 필드에서 가장 큰 seq 값 찾기
SELECT MAX(seq), [user_id],[account_seq], count(*) AS insertCount FROM [dbo].[tbl_Assign] GROUP BY [user_id],[account_seq] HAVING count(*) > 1
3. 중복된 행 중 seq 가 가장 큰 값을 제외한 값 select
SELECT a.seq AS seq FROM [dbo].[tbl_Assign] A INNER JOIN ( SELECT MAX(seq) as seq, [user_id],[account_seq], count(*) AS insertCount FROM [dbo].[tbl_Assign] GROUP BY [user_id],[account_seq] HAVING count(*) >1 ) B ON A.[user_id] = B.[user_id] and A.[account_seq] = B.[account_seq] and A.seq <> B.seq
4. 중복된 행 중 seq 가 가장 큰 값을 제외한 값 delete
DELETE FROM [dbo].[tbl_Assign] WHERE seq IN (SELECT a.seq AS seq FROM [dbo].[tbl_Assign] A INNER JOIN ( SELECT MAX(seq) as seq, [user_id],[account_seq], count(*) AS insertCount FROM [dbo].[tbl_Assign] GROUP BY [user_id],[account_seq] HAVING count(*) > 1) B ON A.[user_id] = B.[user_id] and A.[account_seq] = B.[account_seq] and A.seq <> B.seq )
'MSSQL' 카테고리의 다른 글
Using DBCC SHOWCONTIG and DBCC INDEXDEFRAG to defragment the indexes in a database (0) | 2014.07.22 |
---|---|
bulk insert 을 하기 위한 구분들.. (0) | 2014.07.22 |
6자리 숫자로 만들어진 난수 발생기 (0) | 2014.07.22 |
다른 SQL Server로 TDE 보호 데이터베이스 이동 (0) | 2014.07.22 |
테이블별 데이터 개수, 인덱스 사이즈, 생성일, 마지막 수정일을 알고 싶을때... (0) | 2014.07.22 |