1. RANK
중복 값들에 대해 동일 순위로 표시하고, 중복 순위 다음 값에 대해서는 중복 개수만큼 떨어진 순위로 출력하도록 하는 함수
SELECT empNo, empName, salary,
RANK() OVER (ORDER BY salary DESC) as RANK등수
FROM employee
2. DENSE_RANK
중복 값들에 대해서 동일 순위로 표시하고, 중복 순위 다음 값에 대해서는 중복 값 개수와 상관없이 순차적인 순위 값을 출력하도록 하는 함수
SELECT empNo, empName, salary,
DENSE_RANK() OVER (ORDER BY salary DESC) as DENSE_RANK등수
FROM employee
3. ROW_NUMBER
중복 값들에 대해서도 순하적인 순위를 표시하도록 출력하는 함수
SELECT empNo, empName, salary,
ROW_NUMBER() OVER (ORDER BY salary DESC) as ROW_NUMBER등수
FROM employee
4. NTILE
뒤에 함께 적어주는 숫자 만큼으로 등분을 하는 함수
SELECT empNo, empName, salary,
NTILE(4) OVER (ORDER BY salary DESC) as NTILE등분
FROM employee
5. PARTITION BY *** 중요!!
특정 속성 별로 구분을 하고자 할때 PARTITION BY절을 사용
SELECT empName, job, salary,
RANK() OVER (PARTITION BY job ORDER BY salary DESC) as RANK등수
FROM employee
다 인턴할 때 종종 사용하던 것이었는데 막상 마주하니까 생각이 잘 안났다..
rank() over (partition by ~ order by ~) 구문 절대 까먹지 않기!!!
'Data Science > SQL' 카테고리의 다른 글
[SQL] CONCAT을 까먹다니.. 컬럼 데이터 합치는 방법 (0) | 2022.10.15 |
---|