맨 나중에 데이터 1건 가져오는 SQL 인대 더 좋은 방법이 있을가요? 0 2 4,560

by 유환 [Oracle 기초] [2024.05.08 00:08:59]


07.21_img gr .jpg (1,947,566Bytes)

AA 안에 있는 SQL은 기존에 존재 하는 SQL 이라서 컬럼을 추가하거나 변경  하지 않고 

AA결과에서 맨 마지막 로우 1건만 가져 오려고 하는대요  더 좋은 방법 있을가요?

 

SELECT AAA.*
  FROM (
		SELECT  ROWNUM RN
		     , AA.*
		  FROM (
		        -- 이 안에는 변경 불가
				SELECT A.* 
			  	  FROM emp A 
			  	 ORDER BY 3, 2 ASC
		       ) AA
	   ) AAA
   ORDER BY RN DESC
   FETCH FIRST  1 ROW ONLY;
by 마농 [2024.05.08 08:46:42]

효율적인 구문이 되려면
서브쿼리 안쪽 ORDER BY 구문을 반대로 바꿔야 합니다.

SELECT A.* 
  FROM emp A 
 ORDER BY 3 DESC, 2 DESC
 FETCH FIRST 1 ROW ONLY
;

 


by 유환 [2024.05.08 22:28:51]

감사합니다. 마농님.

말씀대로 안쪽에 쿼리를 좀 변경 해서 해결 했습니다. 

출근하시자 마자 답글 달아 주셧던대 이제 댓글을 쓰네요.

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