CREATE TABLE [dbo].[Auth_Role_Page](

[role_page_idx] [int] NOT NULL,

[com_code] [nvarchar](5) NULL,

[role_id] [nvarchar](20) NULL,

[page_id] [varchar](8) NULL,

[reg_date] [datetime] NULL,

[reg_userid] [nvarchar](20) NULL,

[pop] [char](1) NULL,

GO


위같은 테이블이 있고


아래 같은 중복된 데이터가 포함된 테이블이 있습니다


role_page_idx com_code role_id page_id reg_date

724312 C0005 admin B741 2013-01-09 23:07:09.933

724314 C0005 admin B739 2013-01-09 23:07:09.933

728245 C0005 admin B739 2013-06-29 16:16:47.827

728266 C0005 admin B741 2013-06-29 16:17:03.630

737687 C0005 root B786 2013-09-17 13:32:27.647

737688 C0005 root B786 2013-09-17 13:32:27.647

737689 C0005 root B786 2013-09-17 13:32:27.647

742160 C0005 admin G843 2014-03-17 09:20:20.940

742161 C0005 admin G843 2014-03-17 09:20:20.940

742162 C0005 admin G843 2014-03-17 09:20:20.940

742163 C0005 root G843 2014-03-17 09:20:20.940

742164 C0005 root G843 2014-03-17 09:20:20.940

742165 C0005 root G843 2014-03-17 09:20:20.940

742166 C0005 user G843 2014-03-17 09:20:20.940


           ,[com_code]

           ,[role_id]

           ,[page_id]


세개 열 합쳐서 중복된 데이터를 제거해야하는데


구글링 해서 소스를 이리저리 수정해봤더니


실행만 되고 실제 삭제는 안되더군요;


몇개 올릴려 했는데 코드를 다지워버린 상태고


아래는 수정할려다가 값을 뭘 넣어야하는지 몰라서 수정 실패한 코드입니다.


어떻게 수정해야 실제로 중복된 데이터를 지우고 하나만 남게 할수 있을까요?


   SELECT DISTINCT *

      INTO duplicate_table

      FROM [tjm_edms].[dbo].[Auth_Role_Page]

      GROUP BY [com_code]

      ,[role_id]

      ,[page_id]

      HAVING COUNT(key_value) > 1


   DELETE [tjm_edms].[dbo].[Auth_Role_Page]

      WHERE key_value

      IN (SELECT key_value

             FROM duplicate_table)


   INSERT [tjm_edms].[dbo].[Auth_Role_Page]

      SELECT *

         FROM duplicate_table


     DROP TABLE duplicate_table


그리고 마소 지원에서

http://support.microsoft.com/kb/139444/ko

를 수정해봤는데도 작동을 안해버리네요;;


create table t2(col1 int, col2 int,col3 int, col4 char(50))


insert into t2 values (1, 1,1, 'data value one')

insert into t2 values (1, 1,1, 'data value one')

insert into t2 values (1, 1,2, 'data value one')

insert into t2 values (1, 1,2, 'data value one')

insert into t2 values (1, 1,2, 'data value one')

insert into t2 values (1, 1,3, 'data value one')

insert into t2 values (1, 1,3, 'data value one')

insert into t2 values (1, 2,1, 'data value one')

insert into t2 values (1, 3,1, 'data value one')

insert into t2 values (4, 2,2, 'data value one')

insert into t2 values (1, 3,2, 'data value one')

insert into t2 values (1, 4,2, 'data value one')

insert into t2 values (2, 1,3, 'data value one')

insert into t2 values (1, 1,3, 'data value one')


--SELECT col1, col2,col3, count(*)

--FROM t2

--GROUP BY col1, col2,col3

--HAVING count(*) > 1


SELECT col1, col2, col3, col4=count(*)

INTO holdkey

FROM t2

GROUP BY col1, col2,col3

HAVING count(*) > 1


--set rowcount 1

--delete from t2

--where col1=1 and col2=1 and col3=1


SELECT DISTINCT t2.*

INTO holddups

FROM t2, holdkey

WHERE t2.col1 = holdkey.col1

AND t2.col2 = holdkey.col2

AND t2.col3 = holdkey.col3


SELECT col1, col2, col3, count(*)

FROM holddups

GROUP BY col1, col2, col3


이렇게 해도 작동 자체가 안되네요


id를 뭘 넣어야하는지..


DELETE FROM [test].[dbo].[t2]

WHERE [col4] IN (

SELECT A.[col4] [col4] 

    FROM ( SELECT [col4]

                   FROM [test].[dbo].[t2]

            GROUP BY col1,col2, col3

                 HAVING COUNT(*)  >  1)  A) 


No. Subject Author Date Views
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 2105
8309 해킹 들어왔습니다.. [1] 돌브레인 2014.10.27 2735
8308 집계함수 SUM 처럼 곱셈처리 [2] 우영호수 2014.10.27 9454
8307 mdf ldf 파일로 다른 노트북에서 [1] 푸르른하늘 2014.10.26 2168
8306 트리거를 이용해서 로그 테이블에 데이터 삽입 [1] 푸르른하늘 2014.10.25 2065
8305 부분 조건 LEFT OUTER JOIN 출력 [3] park87 2014.10.24 3458
8304 그룹키 지정하는 방법, PK말구요.. [3] park87 2014.10.24 3269
8303 데이터를 편집창에 넣을때 자동으로 기호 붙이기 [5] park87 2014.10.24 2842
8302 열 '~~'이(가) 집계 함수나 GROUP BY 절에 없으므로 SELECT 목록에서 사용할 수 없습니다. [1] park87 2014.10.24 8738
» 테이블 내에서 여러열을 기준으로 중복된 행 제거 [1] park87 2014.10.23 3052
8300 명령어로 사용자 생성 방법 질문합니다. [2] sams 2014.10.23 3158
8299 시스템 운영 중 오류 덤프가 발생했습니다. 아직모자란사람 2014.10.23 2438
8298 중복 데이터 제거 및 그룹 키((?)로 재설정하기 [1] park87 2014.10.23 3116
8297 MSSQL join할 때 문제가 있습니다. [4] 임쑤 2014.10.22 3188
8296 부분 반복 쿼리 만들기 [5] park87 2014.10.22 2665
8295 초보 문의 [1] 땅훈 2014.10.22 2141
8294 모바일 게임 관련 Harlem 2014.10.21 2295
8293 초보자 질문이 있습니다 ㅠㅠ [2] 곰요 2014.10.21 2469
8292 인덱스 조각화가 99% 입니다. 다시구성과 다시 작성의 차이를 알고 싶습니다. [1] 호짱 2014.10.21 3944
8291 이런 기능 있는지 확인 좀 부탁드리겠습니다. [2] 오오오뇨뇨요 2014.10.21 2305
8290 MSSQL 소수점 자리수 질문드립니다. [4] 지에나르 2014.10.21 25809





XE Login