그룹별 최대값을 가지고 있는 컬럼의 Row만 추출하는 쿼리 입니다.
색칠한 데이터를 보면 SETT_IDX가 0, 1, 2 인 값이 존재합니다. (SVC_MM, TRACK_ID 는 동일합니다.)
여기서 SETT_IDX 가 최대값(2) 인 로우만 추출하는 쿼리 입니다.
[테이블 : tmp_test]
SVC_MM |
TRACK_ID |
SETT_IDX |
RATIO |
2019-01-01 0:00 |
AAA |
0 | 0.5 |
2019-01-01 0:00 |
BBB | 0 | 0.1 |
2019-01-01 0:00 |
BBB | 1 | 0.2 |
2019-01-01 0:00 |
BBB | 2 | 0.5 |
2019-01-01 0:00 |
CCC | 0 | 0.4 |
2019-01-01 0:00 |
DDD | 0 | 0.2 |
2019-01-01 0:00 |
EEE | 0 | 0.4 |
2019-01-01 0:00 |
FFF | 0 | 0.2 |
[쿼리]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | SELECT svc_mm, track_id, sett_idx, ratio FROM (SELECT svc_mm, track_id, sett_idx, ratio, ROW_NUMBER() OVER(PARTITION BY svc_mm, track_id ORDER BY sett_idx DESC) as row_idx FROM tmp_test) WHERE row_idx = 1; |
[결과]
SVC_MM |
TRACK_ID |
SETT_IDX |
RATIO |
2019-01-01 0:00 |
AAA |
0 | 0.5 |
2019-01-01 0:00 |
BBB | 2 | 0.5 |
2019-01-01 0:00 |
CCC | 0 | 0.4 |
2019-01-01 0:00 |
DDD | 0 | 0.2 |
2019-01-01 0:00 |
EEE | 0 | 0.4 |
2019-01-01 0:00 |
FFF | 0 | 0.2 |
ORACLE REPLACE < > 변경 (0) | 2019.11.07 |
---|---|
오라클 년 리스트 (0) | 2019.06.28 |
ORA-02292 해결방법 (0) | 2019.05.16 |
ORA-01403: no data found 해결 (0) | 2019.04.30 |
오라클 소수점 0 표시 (1) | 2019.04.03 |
댓글 영역