RANGE 함수 공부 도중 이해가 잘 안되서 문의 드립니다.
SQL 작성된걸 보면 DEPARTMENT_ID 기준으로 SALARY값을 내림차순 정렬하고 현재 SALARY 값보다 -2000에 포함되는 SALARY 값의 갯수를 나타낸다라고 이해하고있고
그래서 DEPARTMENT_ID 10 그룹으로 보면
1행 4000~6000 4400,6000 2개
2행 2400~4400 2600,3100,4400 3개
3행 1100~3100 2600,3100 2개
4행 600~2600 2600 1개
저는 이렇게 나올거라 생각하는데 다른 결과가 나와서 이해가 잘안되네요
salary가 desc로 소트했을 때이므로
range between 2000 and current row의 뜻은 salary between 현재 salary and 현재 salary + 2000인 값을 가져오는 것입니다.
결과 테이블 보면
1행은 10 부서에서 6000 ~ 8000인 게 자기 자신 밖에 없으므로 1개
2행은 10 부서에서 4400 ~ 6400인 게 6000과 4400이므로 2개
이런 식으로요.
말씀하신대로 나오려면 desc를 빼야겠죠.
감사합니다. 이제 이해되네요
PRECEDING 만 생각하다 보니 DESC일때 +가 되는건 생각을 못했습니다.