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 SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 19897
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 12110
8318 중복데이터 합치는 문제입니당 ㅠㅜ [6] 홍야홍야 2014.10.29 2900
8317 간단 한거 같은거 같으면서도 안되네요 검색 조건중에 or 조건 [2] 밥먹는푸우 2014.10.29 2121
8316 SQL 서버와 Active Directory에 대해서 [2] Larry 2014.10.29 2438
8315 인덱스 리빌드 관련 문의 드려요- [1] 수노 2014.10.29 3112
8314 오라클 참조외래키 문의드립니다. 톡히슈터 2014.10.28 5898
8313 통계시 없는데이터 채우기 [5] 버즈베잇 2014.10.28 6563
8312 행을 열로 변환하는 쿼리 부탁드려요!!!!! [2] 진아현명 2014.10.27 2724
8311 2014 ex 에이전트 시작 문제 [3] park87 2014.10.27 2567
8310 서로다른 데이타베이스안에 공통인 테이블을 한번에 업데이트 할수 있나요? [4] 김영환_281520 2014.10.27 2627
8309 해킹 들어왔습니다.. [1] 돌브레인 2014.10.27 2745
8308 집계함수 SUM 처럼 곱셈처리 [2] 우영호수 2014.10.27 9789
8307 mdf ldf 파일로 다른 노트북에서 [1] 푸르른하늘 2014.10.26 2186
8306 트리거를 이용해서 로그 테이블에 데이터 삽입 [1] 푸르른하늘 2014.10.25 2076
8305 부분 조건 LEFT OUTER JOIN 출력 [3] park87 2014.10.24 3476
8304 그룹키 지정하는 방법, PK말구요.. [3] park87 2014.10.24 3282
8303 데이터를 편집창에 넣을때 자동으로 기호 붙이기 [5] park87 2014.10.24 2852
8302 열 '~~'이(가) 집계 함수나 GROUP BY 절에 없으므로 SELECT 목록에서 사용할 수 없습니다. [1] park87 2014.10.24 8778
» 테이블 내에서 여러열을 기준으로 중복된 행 제거 [1] park87 2014.10.23 3058
8300 명령어로 사용자 생성 방법 질문합니다. [2] sams 2014.10.23 3169
8299 시스템 운영 중 오류 덤프가 발생했습니다. 아직모자란사람 2014.10.23 2447





XE Login