| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- produces
- .xml
- 바인딩변수
- @RequestMapping
- 의존주입
- 비즈니스레이어
- spring
- springjdbc
- @Valid
- gradle
- 어노테이션
- @RequestParam
- AOP
- SpringBoot
- MVC
- 스프링
- 유효성검사
- 생성자주입
- @
- Java
- PointCut
- @ResponseBody
- Model
- after-throwing
- springmvc
- c:if
- 서비스레이어
- application.properties
- frontController
- jointpoint
- Today
- Total
메모장
05-5 순위함수 본문
✔️ 유일값으로 순위 부여하기 : ROW_NUMBER 함수


한글로 설명 하자면
SELECT 찾을거야 NUM, MIDFK,CNUMFK,FDATE를 보여줄건데 ROW_ NUMBER 순위를 부여해서 같은것 끼리 ORDER BY NUM -> PK값으로 순차적으로 보여줘 FROM OWNCOUPON에서 근데 WHERE MIDFK=1;
MIDFK가 1인 애들로만 .
OWNCOUPON 의 원래 테이블과 비교 했을때 NUM 순차적으로 나왔고 MIDFK가 1인 애들만 비교해서 나왔다.
✔️ 같은 순위 개수 고려해 순위 부여하기 : RANK 함수
RANK함수는 같은 순위일때 같은 값을 부여한다. 또한 같은 순위를 처리한 다음 순위의 값은 같은 순위를 처리한 개수를 이용해 매긴다. 예를 들어 1순위가 3개라면 다음순위는 2가 아닌 4가 된다.


한글로 설명하면
SELECT NUM, MIDFK,CNUMFK, FDATE , 그리고 이번엔 RANK() 함수를 ORDER BY MIDFK 로 해줘
(MIDFK가 아까 순서 상관없이 값이 들어온대로 입력되느라 같은 값끼리 묶이지가 않았다 !)
결과를 보면 MIDFK가 같은 것끼리 1번 부터 3개가 있어서 1,1,1 이 출력된 후
2번 시작이 아니라 4번으로 시작된다.
✔️ 같은 순위 개수 무시하고 순위 부여하기 : DENSE_RANK 함수
RANK() 함수와 반대로 1위가 3개 이면 그 다음 4번이 아니라 2번으로 출력된다.
사진 설명을 입력하세요.
1번이 3개 찍히고 그다음 2번으로 시작하는 모습
✔️ 그룹화해 순위 부여하기 : NTILE 함수
NTILE 함수는 인자로 지정한 값만큼 데이터 행을 그룹화해 그룹별 순위를 부여한다. 각 그룹은 1부터 순위가 매겨지며 순위는 각 행의 순위가 아닌 행이 속한 그룹의 순위이다.



NTILE함수는 전체 행을 균등하게 나누어서 어떠한 그룹을 생성해야 할때 사용하기 좋다.
만약 그룹화할 전체 행 수가 행의 개수로 정확하게 나누어 떨어지지 않으면 나머지 행은 마지막 그룹에 할당된다.
'DB > [SQL 입문]' 카테고리의 다른 글
| 05-6 분석함수 (0) | 2024.04.12 |
|---|---|
| 05-4 수학함수 (0) | 2024.04.11 |
| 05-3 집계함수 (0) | 2024.04.11 |
| 05-2 날짜 함수 (0) | 2024.04.11 |
| 05-1 문자열 함수 (0) | 2024.04.11 |