코드별 2개 select 0 3 916

by 팅크인 [2015.08.07 17:02:13]


테이블 A

id,name,code

테이블 B

code

CODE 조인되는 대상 2개씩 select 하는 구문을 작성하려고 하는데 잘 안되네요

고수님들은 간단하게 하실것 같은데 전 안되네요

그룹바이를 어디에 넣어야 할지

 

 

by 창조의날개 [2015.08.07 17:42:52]

CODE 조인되는 대상 2개씩 select의 뜻이 애매 하네요..

CODE 로 조인한 A 테이블의 여러개 로우중에 2개의 로우씩만 얻고자 하시는건지?

어떤 기준으로 2개의 로우만 선택 하실건지?

정확한 입력 데이터와 출력 데이터가 필요합니다.


by 팅크인 [2015.08.10 10:27:44]

CODE 로 조인한 A 테이블의 여러개 로우중에 2개의 로우씩만 얻고자 하시는건지?

  --> 네 맞습니다. 

어떤 기준으로 2개의 로우만 선택 하실건지?

 --> 랜덤으로 2개, EDITDATE 최신순 2개 입니다.  / 일단 2개만 선택되면 됩니다.

 


by 창조의날개 [2015.08.10 10:48:24]


-- RANDOM 2개
SELECT id,name,code
FROM (
      SELECT AA.id, AA.name, AA.code
           , ROW_NUMBER () OVER (PARTITION BY AA.CODE ORDER BY DBMS_RANDOM.VALUE()) RN
      FROM 테이블A AA, 테이블B BB
      WHERE AA.CODE = BB.CODE
)
WHERE RN <= 2
;

-- EDITDATE 최신순 2개
SELECT id,name,code
FROM (
      SELECT AA.id, AA.name, AA.code
           , ROW_NUMBER () OVER (PARTITION BY AA.CODE ORDER BY AA.EDITDATE DESC) RN
      FROM 테이블A AA, 테이블B BB
      WHERE AA.CODE = BB.CODE
)
WHERE RN <= 2
;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입