KEY |FLAG | DATE | RNK KEY |FLAG | DATE | RNK
A | 1 |19980512 | 1 A | 1 |19980512 | 1
A | 1 |20010226 | 2 A | 2 |20010329 | 3
A | 2 |20010329 | 3 B | 1 |19980630 | 1
B | 1 |19980630 | 1 B | 2 |20010816 | 2
B | 2 |20010816 | 2 C | 1 |20010226 | 1
C | 1 |20010226 | 1 C | 2 |20010302 | 2
C | 2 |20010302 | 2 C | 1 |20010326 | 3
C | 1 |20010326 | 3 C | 2 |20010406 | 5
C | 1 |20010404 | 4 C | 1 |20010430 | 6
C | 2 |20010406 | 5 =======> C | 2 |20010720 | 7
C | 1 |20010430 | 6 D | 1 |19990531 | 1
C | 2 |20010720 | 7 D | 2 |20010329 | 3
D | 1 |19990531 | 1 E | 1 |20011030 | 1
D | 1 |20000828 | 2 E | 2 |20020122 | 2
D | 2 |20010329 | 3 E | 1 |20010909 | 1
E | 1 |20011030 | 1 E | 2 |20020328 | 6
E | 2 |20020122 | 2
E | 1 |20010909 | 1
E | 1 |20010910 | 2
E | 1 |20011109 | 3
E | 2 |20011109 | 3
E | 2 |20011231 | 5
E | 2 |20020328 | 6
위의데이터는 KEY로 파티션을 나눈다음 DATE에 따라 정렬 및 랭크를 매긴겁니다.
그런데 KEY별로 위에서부터 아래로 내려갈때 FLAG 값이 1이 연속되면 이중에서 MIN(DATE) 값을 취하고
FLAG값이 2가 연속되면 MAX(DATE)값을 취해야 합니다.
결과적으로는 FLAG가 1와 2가 하나씩 번갈아 오는겁니다.
그래서 오른쪽과 같이 데이터가 나오면 됩니다.
몇시간을 머리 싸메도 너무 힘드네요.
RANK 컬럼 값은 그냥 정렬을 위해 만든거니 무시하셔도 됩니다.
고수분들 도움 부탁드리겠습니다. ㅠㅠ
|