쿼리 질문 좀 부탁드리겠습니다.
아래와 같은 결과를 얻고 싶습니다.
RANKING | CUME_DIST ( % ) | POINT | MAX | MIN |
1 | 0.03 | 100 | 100 | 90 |
2 | 0.06 | 91 | 100 | 90 |
3 | 0.1 | 90 | 100 | 90 |
4 | 0.13 | 89 | 89 | 87 |
5 | 0.16 | 88 | 89 | 87 |
6 | 0.19 | 87 | 89 | 87 |
7 | 0.23 | 86 | 86 | 81 |
조회된 데이터는 RANKING, CUME_DIST, POINT 만 있고,
MAX,MIN 값을 만들고 싶습니다.
1. CUME_DIST 가 0.1 (10%) 이하면, 이 구간 최상위값과 최하위값만 나와야 합니다.
2. 10% 과 같이 20% 구간도 최상위 값과 최하위 값만 나와야 합니다.
고수님들의 의견 부탁드리겠습니다.
Comment 1
-
건우아빠
2019.10.10 14:59
WITH RES AS(select 1 RANKING ,0.03 CUME_DIST,100 POINT UNION ALLselect 2 RANKING,0.06 CUME_DIST,91 POINT UNION ALLselect 3 RANKING,0.1 CUME_DIST,90 POINT UNION ALLselect 4 RANKING,0.13 CUME_DIST,89 POINT UNION ALLselect 5 RANKING,0.16 CUME_DIST,88 POINT UNION ALLselect 6 RANKING,0.19 CUME_DIST,87 POINT UNION ALLselect 7 RANKING,0.23 CUME_DIST,86 POINT ) ,RES_AREAAS (SELECT CEILING(CUME_DIST * 100 / 10 ) CUME_DIST_AREA , MAX(POINT) POINT_MAX , MIN(POINT) POINT_MINFROM RESGROUP BY CEILING(CUME_DIST * 100 / 10 ) )SELECT *FROM RES A JOIN RES_AREA B ON CEILING(A.CUME_DIST * 100 / 10 ) = B.CUME_DIST_AREAORDER BY A.RANKING