<RANK>
- 데이터의 순위를 출력하는 함수
▼ 직업이 analyst, manager인 사원들의 이름, 직업, 월급, 월급의 순위를 출력하면 다음과 같음
▶ RANK() 뒤에 OVER 다음에 나오는 괄호 안에
출력하고 싶은 데이터를 정렬하는 SQL 문장을 넣으면
그 컬럼 값에 대한 데이터 순위가 출력됨
▷ 위에서는 월급이 높은 사원부터 출력되게 ORDER BY절을 사용했으니까 높은 순서부터 순위가 부여됨
▶ 직업별로 묶어서 순위를 부여하기 위해 ORDER BY 앞에 PARTITION BY job 을 사용해서 해봄
<DENSE_RANK>
- 데이터 순위를 상세하게 출력하는 함수
위에서는 1등이 2명이여서 바로 1다음에 3으로 갔는데
▶ 바로 2등을 출력하고자 한다면 DENSE_RANK 함수를 사용하면됨
맨 끝에 컬럼 2개를 보면 확인해볼 수 있음
▶ 81년도에 입사한 사원들의 직업, 이름, 월급, 순위를 출력. 직업별로 월급이 높은 순서대로 순위 부여
81년도에 입사한 사람을 어떻게 출력하는가 여러번 시도해봤는데
(81년도가 포함된 사람 in 으로 해야하나 등등)
81년도 1월 1일부터 12월 31일까지 해당되는 사람 불러오면 되는거였는데 ㅠㅠㅠㅠ
왜 이걸 생각못했을까 HAHAHAHAHA
▶ DENSE_RANK 바로 다음 괄호에 데이터를 넣고 사용할 수 있다.
바로 검색기능?같은 것 같은데!
▶ 괄호 안에 적힌 '2975'가 sal인 사원은 순위가 어떻게 되는지 출력하는 쿼리
▷ ORDER By sal DESC 인 within group에서 2975sal인 DENSE_RANK를 출력해라..!
▶ 입사일 81년 11월 17일인 사원 테이블 전체 사원들 중 몇 번째로 입사한 것인지 출력
'데이터베이스 > SQL' 카테고리의 다른 글
SQL Row를 column으로 출력 SUM+DECODE, PIVOT, UNPIVOT (0) | 2023.12.12 |
---|---|
SQL NTILE,CUME_DIST,LISTAGG,LAG, LEAD (1) | 2023.11.29 |
SQL 그룹함수 MAX, MIN, AVG, SUM, COUNT (0) | 2023.11.26 |
SQL IF문을 SQL로 해보자 DECODE, CASE (0) | 2023.11.23 |
SQL NULL값을 다르게 출력해주기 NVL, NVL2 (0) | 2023.11.23 |