테이블내 같은값중 최근/과거값 구하기 (partition by)

By | 1월 27, 2010

- 출처 : 데이터베이스사랑 -

안녕하세요~

질문좀 드립니다.

A 테이블에

aaa bbb date
111 123 20091201
111 124 20091230
222 246 20100101
222 248 20100105
222 250 20100103
333 345 20081123
333 346 20091124

이렇게 있는데

aaa가 같은 값중 date가 생성일이 빠른거 / 나중인거 두가지 쿼리를 알고 싶습니다.

생성일이 빠른건

aaa bbb date
111 123 20091201
222 246 20100101
333 345 20081123

이렇게..

--------------

생성일이 느린건

aaa bbb date
111 124 20091230
222 248 20100105
333 346 20091124

이렇게 데이터를 뽑고 싶습니다.

도움 부탁드리겠습니다. 

답)

select * from (
select

            aaa
          , bbb
          , date
          , row_number() over (partition by aaa ORDER BY date asc ) AS row_no
 from a
 )
 where row_no = 1

가장 느린 데이터는 date desc

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments