분석함수를 사용하면 깔끔한데...
굳이 그렇게 하시겠다면..?
먼저 동점자에 대한 기준이 뭔가요..?
그게 있어야 진행이 될꺼 같은데요..?
예) 동점자일 경우 학번순으로 등수를 부여하겠다 라는 기준 필요.
근데 정말 왜 저렇게 하려고 하시는지..? 이유가 궁금하네요...
만일 제 밑에 놈이 저렇게 짜면 전 화낼꺼 같은데요..?
굳이 중복테이블을 액세스하면서 하려는 이유가 있으신지요..? 메인쿼리의 결과값 만큼 스칼라서브쿼리가 수행될텐데... 단순 호기심차원이 아니라면...;;; 궁금..?
-- 1. 유일키 항목을 추가 조건으로 주는 방법 -- -- 1.1. 스칼라서브쿼리 SELECT S1.학번, S1.과목코드, S1.점수 , (SELECT COUNT(*) + 1 FROM 성적 S2 WHERE (S2.점수 > S1.점수) OR (S2.점수 = S1.점수 AND S2.학번 < S1.학번) ) AS 등수 FROM 성적 S1 ; -- 1.2. Outer Join & Group by Count SELECT S1.학번, S1.과목코드, S1.점수 , COUNT(S2.학번) + 1 AS 등수 FROM 성적 S1 LEFT OUTER JOIN 성적 S2 ON (S2.점수 > S1.점수) OR (S2.점수 = S1.점수 AND S2.학번 < S1.학번) GROUP BY S1.학번, S1.과목코드, S1.점수 ;