2012-11-28 2 views
1

에서 gpa를 계산 안녕 전 오라클 SQL에 새로운 오전과 나는 테이블에서 성적을 읽고 학생들을위한 GPA를 생성 할 수있는 SQL 문을 작성하고 싶습니다. 아래는 내가 쓴 샘플 코드는 그 작동하지 :오라클 SQL은

select id, 
declare gpa = 0; 
BEGIN 
    IF grade = 'A+' THEN gpa = gpa + 4.5; 
    ELSIF grade = 'A' THEN gpa = gpa + 4; 
    ELSIF grade = 'B+' THEN gpa = gpa + 3.5; 
    ELSIF grade = 'B' THEN gpa = gpa + 3; 
    ELSIF grade = 'C+' THEN gpa = gpa + 2.5; 
    ELSIF grade = 'C' THEN gpa = gpa + 2; 
    ELSE gpa = gpa + 0; 
    END IF 
    gpa = gpa/count(grade) 
END 
gpa from table where id in ('s11','s12','s13','s14') 
group by id 

테이블에있는 데이터의 예는 다음과 같은 수 있습니다 :

id     grade 
-------------------------- 
s11     A 
s11     B+ 
s11     A+ 
s11     C 
s12     C+ 
s12     A 
s12     D 
s12     B 
s13     A+ 
s13     C+ 
s13     B 
s13     A 
s13     A 
.... 
.... 
.... 
.... 

는 사람이 도와 주실 래요 ???? 이 같은

답변

3

시도 뭔가 :

select id, sum(case name 
        when 'A+' then 4.5 
        when 'A' then 4 
        when 'B+' then 3.5 
        when 'B' then 3 
        when 'C+' then 2.5 
        when 'C' then 2 
        else 0 
       end 
       )/count(*) gpa 
from table 
where id in ('s11','s12','s13','s14') 
group by id 
+0

감사합니다 아주, 그것을 잘 작동합니다. 감사합니다. –

+0

@AvineshKumar - 여러분은 환영합니다. –