2015-01-29 2 views
0

테스트 합격/불합격의 주당 볼륨을 두 개의 별도 열로 표시하는 쿼리가 있습니다. 세 번째 열을 추가하여 실패 비율 (1/(Failed + Passed)) * Failed를 보여줍니다.Oracle SQL - 새 열에 두 열의 백분율 표시

SELECT to_char(DATE,'YYYY'), to_char(DATE,'WW'), 
    SUM(case WHEN Result = 'Y' then 1 else 0 end) Failed, 
    SUM(case WHEN Result = 'N' then 1 else 0 end) Passed 
FROM Result_table 
GROUP BY to_char(DATE,'YYYY'), to_char(DATE,'WW') 
ORDER BY to_char(DATE,'YYYY'), to_char(DATE,'WW'); 

나는 그러나, 나는 오류가 점점 계속, (이미 정의되어 실패하고 통과 있도록) 하위 쿼리로 위를 사용해야 할 생각 - 즉 올바른 접근 방식 인 경우 그래서 확실하지 않다.

도움을 주시면 감사하겠습니다.

건배

+0

하위 쿼리에서 사용하고 어떤 오류가 발생 했습니까? –

답변

1

당신이 년 주에 열이 너무 별명 할 필요 의미는 외부 쿼리에 order by를 이동해야하는 하위 쿼리,로 사용하려면, 당신이 시도하는 방법

SELECT year_num, week_num, failed, passed, 
    100 * failed/(failed + passed) as failed_percent 
FROM (
    SELECT to_char(DATE,'YYYY') as year_num, 
    to_char(DATE,'WW') as week_num, 
    SUM(case WHEN Result = 'Y' then 1 else 0 end) as failed, 
    SUM(case WHEN Result = 'N' then 1 else 0 end) as passed 
    FROM Result_table 
    GROUP BY to_char(DATE,'YYYY'), to_char(DATE,'WW') 
) 
ORDER BY year_num, week_num; 
+0

완벽한! 작동하는 것뿐만 아니라, 내가 뭘 잘못 했는지도 정확히 파악했습니다 (시도한 것을 보지 않고도). – user1444329

관련 문제