2017-02-01 3 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)/(51609 + 18127)= 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

はい、解決しました。今朝、入力いただきありがとうございます! –

関連する問題