쿼리 정렬 질문드립니다. 0 2 1,386

by 너구링 [Oracle 기초] [2018.03.16 11:33:10]


select * 
   from ( select *
                  from TABLE_A , TABLE_B
              where 1=1
                   and A.id = B.id 
            order by reg_date desc) as bbbbb
         group by id order by reg_date desc
중복된 id 중에 최신 날짜 데이터만 뽑아주고 싶어 위처럼 쿼리를 짜봤는데..group by 에 reg_date가 포함되지않으면 쿼리 에러가 납니다. 하지만 포함시키면 아이디는 같아도 날짜는 다르기에 모든 데이터가 표출됩니다.. 조언 부탁드립니다.
by 우리집아찌 [2018.03.16 12:25:28]

해당ID에 어떤 REG_DATE 가 정렬되야하나요 

MAX(REG_DATE) , MIN(REG_DATE) 등의 기준이 필요합니다.


by 마농 [2018.03.16 13:18:46]
SELECT *
  FROM (SELECT a.id
             , b.reg_date
             , -- 조회 항목 리스트 --
             , ROW_NUMBER() OVER(PARTITION BY a.id ORDER BY b.reg_date DESC) rn
          FROM table_a a
             , table_b b
         WHERE a.id = b.id
        )
 WHERE rn = 1
;

 

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