WITH T AS(
SELECT 1 MONEY, 1 NUM FROM DUAL UNION ALL
SELECT 1 , 2 FROM DUAL UNION ALL
SELECT 2 , 3 FROM DUAL UNION ALL
SELECT 2 , 4 FROM DUAL UNION ALL
SELECT 5 , 5 FROM DUAL
)
MONEY가 같으면 같은 랭크에 속하고 그 뒤에 랭크는 그 수만큼 더한 랭크가 나와야 된다. 결과는 다음과 같다.
결과
NUM MONEY RNK
---------- ---------- ----------
5 5 1
3 2 2
4 2 2
1 1 4
2 1 4
=>정답 트리플 클릭
SELECT A.NUM,
A.MONEY,
COUNT(B.MONEY)+1 RNK
FROM
T A,
T B
WHERE A.MONEY < B.MONEY(+)
GROUP BY A.NUM,
A.MONEY
ORDER BY A.MONEY DESC
'Oracle > SQL Question' 카테고리의 다른 글
[퀴즈] 문자는 문자 그대로 숫자0은 0,소수는 첫째자리까지만 출력해보세요~ (0) | 2015.09.14 |
---|---|
[퀴즈] Rollup을 이용한 소계의 정렬 (0) | 2015.09.14 |
[퀴즈] 행을 열로 변환 퀴즈 (0) | 2015.09.14 |
[퀴즈] 조건부 누적쿼리 퀴즈 (0) | 2015.09.14 |
[퀴즈] 사과 나눠주기 퀴즈 (0) | 2015.09.14 |