위 링크와 더불어 참고 하실 수 있는 내용 올립니다.
순번 하는 방법이 다양한데, 조금씩의 차이를 보시면 더욱 이해가 좋을 것 같습니다.
WITH T AS ( SELECT 1 AS no FROM DUAL UNION ALL SELECT 2 AS no FROM DUAL UNION ALL SELECT 3 AS no FROM DUAL UNION ALL SELECT 3 AS no FROM DUAL UNION ALL SELECT 4 AS no FROM DUAL UNION ALL SELECT 5 AS no FROM DUAL UNION ALL SELECT 6 AS no FROM DUAL ) SELECT no, ROW_NUMBER() OVER(ORDER BY no) AS rank1, RANK() OVER(ORDER BY no) AS rank2, DENSE_RANK() OVER(ORDER BY no) AS rank3 FROM T
2번째 큰 값을 찾는 집계함수는 없습니다.
하지만 사용자 집게함수로 만들 수는 있습니다.
http://www.gurubee.net/article/57313
사용자 함수를 만들어 사용하는 것 보다는
기존의 분석함수인 ROW_NUMBER 을 사용하는게 좋을 듯 하네요.