오라클 중복제거 쿼리 관하여 궁금사항이 있습니다. 0 2 1,519

by 피터슨 [Oracle 기초] [2017.01.24 20:00:55]


select * from (
      select row_number() over(order by B.PAY_DATE desc) RNUM, B.USER_ID, B.USER_NAME, B.PAY_DATE
        from TEST A, WHITE B
        where A.PAY_NO = B.NO 
    ) C where RNUM between 1 and 10 

이렇게 테이블 2개를 이용하여 값 조회를 하는데

A.PAY_NO 값이 중복되는 상황이라 중복제거를 하고 싶습니다.

알려주시면 감사하겠습니다..

EX ) A.PAY_NO 값 : 1 1 2 2 2 3 3 4 5 5

이런식으로 중복 되서 들어가있습니다.

 

by 랑에1 [2017.01.25 09:11:34]
SELECT *
FROM 
(
select row_number() over(PARTITION BY c.pay_no ORDER BY c.pay_date) rn, C.* from (
      select row_number() over(order by B.PAY_DATE desc) RNUM, B.USER_ID, B.USER_NAME, B.PAY_DATE
        from TEST A, WHITE B
        where A.PAY_NO = B.NO
    ) C where RNUM between 1 and 10
)
WHERE rn = 1   

 


by 마농 [2017.01.31 09:49:06]
SELECT *
  FROM (SELECT ROW_NUMBER() OVER(ORDER BY b.pay_date DESC) rnum
             , b.user_id, b.user_name, b.pay_date
          FROM white b
         WHERE b.no IN (SELECT a.pay_no FROM test a)
        ) c
 WHERE rnum BETWEEN 1 AND 10
;

 

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