오라클 그룹 함수중에 MAX대신 2번째로 MAX인것을 찾아내는 함수가 있나요? 0 3 154

by grape111 [2017.11.10 21:35:58]


안녕하세요. 오라클 그룹 함수중에 MAX대신 2번째로 MAX인것을 찾아내는 함수가 있나요?

여려개가 있는데 MAX 다음 2위로 큰 값을 찾아내는 기능을 구현해야하는데요... 혹시 그룹합수중에 있는 지 궁금합니다. 아시면 답변부탁드립니다.

by DB초보자입니다 [2017.11.13 10:18:53]

http://www.gurubee.net/article/62232 

비슷한 글이 있네요


by 아발란체 [2017.11.13 13:14:39]

위 링크와 더불어 참고 하실 수 있는 내용 올립니다.

순번 하는 방법이 다양한데, 조금씩의 차이를 보시면 더욱 이해가 좋을 것 같습니다.

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

 


by 마농 [2017.11.13 13:35:04]

2번째 큰 값을 찾는 집계함수는 없습니다.
하지만 사용자 집게함수로 만들 수는 있습니다.
http://www.gurubee.net/article/57313
사용자 함수를 만들어 사용하는 것 보다는
기존의 분석함수인 ROW_NUMBER 을 사용하는게 좋을 듯 하네요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입