info_sn 의 역순으로 정렬 했을 때 가장 첫번째 info_sn 값을 가져오라는 뜻으로
Oracle 에서도 정렬항목과 조회항목이 다를 때 유용하게 사용할 수 있는 구문입니다.
그런데 여기서는 정렬항목과 조회항목이 같으므로, 불필요하게 KEEP 을 사용한 것으로 그냥 MAX 만 하면 됩니다.
- 변경전 : MAX(info_sn) KEEP (DENSE_RANK FIRST ORDER BY info_sn DESC)
- 변경후 : MAX(info_sn)
예)
- 가장 최근에 거래한 사람 구하기 : MAX(회원번호) KEEP (DENSE_RANK FIRST ORDER BY 거래일자 DESC)
- 가장 최근에 거래한 날짜 구하기 : MAX(거래일자) -- 굳이 KEEP 을 사용할 이유가 없음