inblog logo
|
gyul
    데이터 베이스

    [데이터 베이스] 10-1. 순위 구하기 Rank () over 함수

    귤's avatar
    귤
    Feb 28, 2025
    [데이터 베이스] 10-1. 순위 구하기 
Rank () over 함수
    Contents
    Rank () over 함수Rank () over 함수 응용 문제
    💡
    rank () over, row_number(), set @rownum := 0

    Rank () over 함수

    -- DB 고급 함수 -- 1. RANK select empno, ename, sal, 1 '순위번호' from emp order by sal desc; select empno, ename, sal, rank () over (order by sal desc) '순위' from emp; select empno, ename, sal, dense_rank () over (order by sal desc) '순위' from emp; select empno, ename, sal, row_number () over (order by sal desc) '순위' -- 순차적으로 숫자를 붙이는 것, 넘버링하기 from emp;
    order by sal desc;
    order by sal desc;
    dense_rank () over (order by sal desc)
    dense_rank () over (order by sal desc)
    rank () over (order by sal desc)
    rank () over (order by sal desc)
    row_number () over (order by sal desc)
    row_number () over (order by sal desc)

    Rank () over 함수 응용 문제

    -- 2. 문제 (EMP 테이블에서, 본인의 월급과 상사의 월급의 합의 순위를 내림차순으로 구하시오) select e1.ename, e1.sal '내월급', e2.sal '상사월급', e1.sal+ifnull(e2.sal,0) '월급의합', dense_rank() over (order by e1.sal+ifnull(e2.sal,0) desc) '순위' from emp e1 left outer join emp e2 on e1.mgr = e2.empno; select 나, 상사, 내월급, 상사월급, rank() over (order by 상사월급 desc) '순위' from ( select e1.ename '나', e2.ename '상사', e1.sal '내월급', e2.sal '상사월급', e1.sal+ifnull(e2.sal, 0) '월급의합' from emp e1 left outer join emp e2 on e1.mgr = e2.empno ) nemp;
    notion image
    notion image
     
    Share article

    gyul

    RSS·Powered by Inblog