2017-02-01 1 views
0

안녕하세요. 저는 이처럼 테이블을 보유하고 있으며 각 유형에 대한 합계 비율 (개수)을 가져 오는보기를 구성하려고합니다. 이것은 나에게 잘못된 결과를 내 쿼리 (각 유형에 대해
, 나는 "고양이"에 NULL와 "고양이"임팔라에서 다른 카테고리의 행 개수 나누기

에 null 이외의 값이 카운트의 합으로 계산의 합을 나누고 싶습니다 내가 먼저 수를 요약해야하기 때문에 나는 생각하지만, 필자는이 테이블 사용)

select case 
    When protocol = 61002 AND type= 3 THEN "S11 Success Rate" 
    When protocol= 61002 AND type = 4 THEN "S11 Bearer Success Rate" 
end as name, 
max(case when cat is null then count end)/nullif(max(case when cat is not null then count end),0) as result 
from table 

그렇게 어려움을 겪고 :

enter image description here

을 유형 3의 원하는 결과는 결과가 될 것 = (63 + 15456) / (51,609 + 18,127) = 0.2225 나는이 느낌

답변

1

당신이 찾고있는 무엇 :

select 
case 
    When protocol = 61002 AND type = 3 THEN "S11 Success Rate" 
    When protocol = 61002 AND type = 4 THEN "S11 Bearer Success Rate" 
end as name, 
sum(case when cat is null then count else 0 end)/sum(case when cat is null then 0 else count end) 
from table 
group by name 

이것은 생산 다음과 같은 결과 :

S11 성공률 0.22253929104049558

S11 무기명 성공률 0.90956749672346004

그룹화를 통해 유형별로 집계 할 수 있습니다. case 문은 올바른 대/소문자가 아닌 경우 값을 0으로 설정합니다. 결과적으로 예상 한 정확한 합계가됩니다.

+0

예, 오늘 아침에 해결해 주셔서 감사합니다. –