[쿼리]기초 질문드립니다 . 0 2 585

by 쭈니아빠 [SQL Query] [2018.01.10 00:24:36]


A TBL                     B TBL

CODE   NAME      CODE SEQ    C1     C2

00001    AAA       00001   1     838    222

 00002   BBB        00001   2     234    234

00003  CCC         00001    3     224   153 

                        00002    1     299   545

                        00002    2     234  666  

                        00003    1     778  468

                        00003    2    243   456

                        00003    3    456  789

 

A TBL  코드 와 B TBL 코드 조인하여서 B TBL SEQ 가장 높은값만

1:1 로 가져오고 싶은데요 . 머리만 뱅글뱅글 돌고 막상 코드가 

어찌 접근해야되는지 궁금합니다 .T,.T 

결과값 

코드    SEQ  C1     C2  

00001    3     224   153

00002    2    234   666

00003   3      456 789 

by 마농 [2018.01.10 07:48:46]
WITH b AS
(
SELECT '00001' code, 1 seq, 838 c1, 222 c2 FROM dual
UNION ALL SELECT '00001', 2, 234, 234 FROM dual
UNION ALL SELECT '00001', 3, 224, 153 FROM dual
UNION ALL SELECT '00002', 1, 299, 545 FROM dual
UNION ALL SELECT '00002', 2, 234, 666 FROM dual
UNION ALL SELECT '00003', 1, 778, 468 FROM dual
UNION ALL SELECT '00003', 2, 243, 456 FROM dual
UNION ALL SELECT '00003', 3, 456, 789 FROM dual
)
SELECT code, seq, c1, c2
  FROM (SELECT code, seq, c1, c2
             , ROW_NUMBER() OVER(PARTITION BY code ORDER BY seq DESC) rn
          FROM b
        )
 WHERE rn = 1
;

 


by 쭈니아빠 [2018.01.10 09:40:49]

아 너무감사합니다 . ^^ ... 마농님 

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