update select 효율적인 쿼리 질문드립니다 0 3 1,945

by 조신부리 [SQL Query] update select 일괄 update [2017.12.26 17:32:07]


quickmenu_id row_number()  no
키값으로 여기에있는값을 여기로 복사
     

새로만든 컬럼 no에 rownum(그룹별순번)을 전체 update하려고 합니다.

쿼리를 실행하는데 20초정도 걸립니다(5000행)

제가 작성한 쿼리는 뭔가 좀 복잡한데 간단한 update문을 부탁합니다

update MDQUICKMENU a
	set no = (select  rn
				from (
					select  row_number() over(partition by site_id order by TO_NUMBER(quickmenu_id)) rn
						,quickmenu_id
					from MDQUICKMENU
					) q
				where a.quickmenu_id = q.quickmenu_id	
			);

 

by 우리집아찌 [2017.12.26 18:08:02]
-- 위의 UPDATE 문에 WHERE 절에 a.SITE_ID = q.SITE_ID 도 빠져있네요.           
MERGE INTO MDQUICKMENU m
USING ( SELECT SITE_ID 
             , QUICKMENU_ID 
             , ROW_NUMBER() OVER(PARTITION BY SITE_ID ORDER BY TO_NUMBER(QUICKMENU_ID) ) RN
         FROM MDQUICKMENU
       )e
ON (  m.SITE_ID = e.SITE_ID 
  AND m.QUICKMENU_ID = e.QUICKMENU_ID )
WHEN MATCHED THEN
  UPDATE SET m.NO = e.RN

 


by 조신부리 [2017.12.27 09:36:49]

감사합니다.....merge문을 생각치 못했네요.

-- 위의 UPDATE 문에 WHERE 절에 a.SITE_ID = q.SITE_ID 도 빠져있네요 <--제쿼리에 넣으면 안는데..ㅎ


by SQL모험가 [2021.10.12 17:47:33]

감사합니다 참고하겠습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입