데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

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
8311 2014 ex 에이전트 시작 문제 [3] park87 2014.10.27 2538
8310 서로다른 데이타베이스안에 공통인 테이블을 한번에 업데이트 할수 있나요? [4] 김영환_281520 2014.10.27 2581
8309 해킹 들어왔습니다.. [1] 돌브레인 2014.10.27 2708
8308 집계함수 SUM 처럼 곱셈처리 [2] 우영호수 2014.10.27 9038
8307 mdf ldf 파일로 다른 노트북에서 [1] 푸르른하늘 2014.10.26 2149
8306 트리거를 이용해서 로그 테이블에 데이터 삽입 [1] 푸르른하늘 2014.10.25 2052
8305 부분 조건 LEFT OUTER JOIN 출력 [3] park87 2014.10.24 3441
8304 그룹키 지정하는 방법, PK말구요.. [3] park87 2014.10.24 3247
8303 데이터를 편집창에 넣을때 자동으로 기호 붙이기 [5] park87 2014.10.24 2825
8302 열 '~~'이(가) 집계 함수나 GROUP BY 절에 없으므로 SELECT 목록에서 사용할 수 없습니다. [1] park87 2014.10.24 8495
» 테이블 내에서 여러열을 기준으로 중복된 행 제거 [1] park87 2014.10.23 3050
8300 명령어로 사용자 생성 방법 질문합니다. [2] sams 2014.10.23 3155
8299 시스템 운영 중 오류 덤프가 발생했습니다. 아직모자란사람 2014.10.23 2425
8298 중복 데이터 제거 및 그룹 키((?)로 재설정하기 [1] park87 2014.10.23 3095
8297 MSSQL join할 때 문제가 있습니다. [4] 임쑤 2014.10.22 3133
8296 부분 반복 쿼리 만들기 [5] park87 2014.10.22 2645
8295 초보 문의 [1] 땅훈 2014.10.22 2122
8294 모바일 게임 관련 Harlem 2014.10.21 2282
8293 초보자 질문이 있습니다 ㅠㅠ [2] 곰요 2014.10.21 2446
8292 인덱스 조각화가 99% 입니다. 다시구성과 다시 작성의 차이를 알고 싶습니다. [1] 호짱 2014.10.21 3909





XE Login