oracle 쿼리 작성 질문입니다. 0 2 777

by 에즈레인보우 [SQL Query] [2015.10.23 11:40:49]


안녕하세요 도저히 머리를 쥐어짜고 짜다가 ㅠ 안되어서

글을 올리게 됩니다. 도움 좀 부탁드리겠습니다.

ex)

사업장 납품처 품번 키값 날짜
서울 1-1 1111 2011-01-01
서울 1-1 2222 2012-01-01
서울 1-1 3333 2013-01-01
서울 1-2 4444 2013-01-01

현재 쿼리는 이런식으로 출력 되도록 되어 있습니다. 

 

제가 원하는 출력되기 원하는 데이터는 아래 값입니다.

아래와 같이 같은 품번을 가진 것들 중에서 날짜가 최대 값인 것만 출력되기를 원합니다.

고수님들 도움을 요청 드립니다. 감사합니다.

사업장 납품처 품번 키값 날짜
서울 1-1 3333 2013-01-01
서울 1-2 4444 2013-01-01

 

 

by 우리집아찌 [2015.10.23 11:48:04]


WITH T AS (
SELECT '서울' A ,'을' B ,'1-1' C, '1111' D , '2011-01-01' E FROM DUAL UNION ALL
SELECT '서울' A ,'정' B ,'1-1' C, '2222' D , '2012-01-01' E FROM DUAL UNION ALL
SELECT '서울' A ,'병' B ,'1-1' C, '3333' D , '2013-01-01' E FROM DUAL UNION ALL
SELECT '서울' A ,'병' B ,'1-2' C, '4444' D ,  '2013-01-01' E FROM DUAL 
)
SELECT * FROM 
(
SELECT T.*  
     , ROW_NUMBER() OVER( PARTITION BY C  ORDER BY E DESC) RN
FROM T
) WHERE RN = 1 

 


by 에즈레인보우 [2015.10.23 12:29:24]

아찌님 진심으로 감사합니다. 이런 좋은 방법이 있었다니,

덕분에 완전 해결되었습니다.

더 공부해야 될 것 같습니다!! 감사합니다~!

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