μμ ν¨μ : ROW_NUMBER(), RANK(), DENSE_RANK()
ROW_NUMBER() λ SQLμμ μ¬μ©λλ μλμ° ν¨μ μ€ νλμ λλ€.
ROW_NUMBER() ν¨μλ 쿼리 κ²°κ³Ό μ§ν©μ κ° νμ λν΄ κ³ μ ν λ²νΈ λλ μμλ₯Ό ν λΉνλλ° μ¬μ©λ©λλ€.
μ΄λ κ²°κ³Ό μ§ν© λ΄μμ νμ μμλλ‘ λμ΄νκ±°λ μμλ₯Ό κΈ°λ°μΌλ‘ νν°λ§νλλ° μ μ©ν©λλ€.
ROW_NUMBERμ κ²½μ° λμ μ΄μ¬λ, μμλ λ€λ¦ λλ€.
λ μ½λ(ν) κ°μκ° κ²°κ΅ μμ κ°μμμ.
ROW_NUMBER() ν¨μλ μ£Όλ‘ OVER() μ κ³Ό ν¨κ» μ¬μ©λλ©°, νΉν μμλ₯Ό μ§μ νλ κΈ°μ€ μ΄μ κΈ°λ°μΌλ‘ μμλ₯Ό ν λΉν λ μ μ©ν©λλ€.
μλ₯Ό λ€μ΄
SELECT employee_id, employee_name, salary,
ROW_NUMBER() OVER(ORDER BY salary DESC) AS rownum
FROM employees;
μμ SQL 쿼리λ "employees" ν μ΄λΈμμ μ§μμ μ 보λ₯Ό κ²μνκ³ , κ·Έλ€μ κΈμ¬λ₯Ό λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬ν ν, ROW_NUMBER() ν¨μλ₯Ό μ¬μ©νμ¬ κ° μ§μμκ² κΈμ¬ μμλ₯Ό ν λΉν©λλ€.
OVER(ORDER BY salary DESC) λΆλΆμ ROW_NUMBER() ν¨μκ° μ΄λ€ μ΄μ κΈ°μ€μΌλ‘ μμλ₯Ό ν λΉν μ§ μ§μ ν©λλ€.
μ΄λ¬ν μλμ° ν¨μλ μ’ μ’ λΆμ λ° λ³΄κ³ μΏΌλ¦¬μμ μ¬μ©λλ©°, κ²°κ³Ό μ§ν©μ μμλ₯Ό μ μνκ±°λ νΉμ μμμ λ°λΌ κ²°κ³Όλ₯Ό νν°λ§νκ³ μμλ₯Ό λ§€κΈ°λλ° μ μ©ν©λλ€. λ€λ₯Έ μλμ° ν¨μλ‘λ RANK(), DENSE_RANK(), NTILE() λ±μ΄ μμ΅λλ€.
RANK()
λμ μ΄λ©΄ λλ±ν μμλ₯Ό λΆμ¬νλ€.
Dense_RANK()
μ μκ° λμΌν κ²½μ° μμλ λκ°μ§λ§ λ±μκ° κ±΄λλ°μ§ μκ³ μ μ΄μ΄μ§λ€.