여러 값중 한개씩만 뽑기..도와주세요 ㅠㅠ 0 2 1,009

by 개꿈 [SQL Query] [2016.11.11 10:59:59]


seq        name        birth           date

1            홍길동     19990101   20161108

2           홍길동     19990101   20150707

3           손오공     20001211   20160505

4           손오공     20001211   20150101

 

위데이터를 (이름 생년월일) 키값으로 seq값이 제일 큰 값만 불러오고 싶습니다..

in쿼리 안에 select max(seq) from table group by name, birth

이렇게 하면 결과값이 나오는데 건수가 많을 경우 느리네요 ㅠㅠ

부탁드립니다

 

결과값

seq        name        birth           date

2           홍길동     19990101   20150707

4           손오공     20001211   20150101

 

by swlee [2016.11.11 11:10:34]
with t (seq,nm,birth,dt) as (
select 1,'홍길동','19990101','20161108' from dual union all
select 2,'홍길동','19990101','20150707' from dual union all
select 3,'손오공','20001211','20160505' from dual union all
select 4,'손오공','20001211','20150101' from dual
)
select seq, nm, birth, dt
  from (
        select t.*
               , row_number() over(partition by nm order by seq desc) rn
          from t)
where rn = 1 

 


by 개꿈 [2016.11.11 11:17:24]

빠른 답변 너무 감사합니다 ~ 

속도가 좋아졌네요^^ 

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