1. ホーム
  2. sql

[解決済み] Oracle sqlでパーセンテージを計算する方法

2022-03-03 04:02:05

質問

IDは異なるソースから取得されているので、各ソースファイルについて、全IDに占める値0のIDの割合を知りたいです。

サンプルデータです。

ID  Source    
1    aaa     
0    aaa     
2    bbb     
0    ccc     
3    ccc     
0    ccc 
5    aaa 
0    bbb
6    bbb 
7    bbb

のような出力が必要です。

CountOfIDs0   TotalIDs Source  PercentageIDs0
2               3         ccc     66.6%%
1               3         aaa     33.3%%
1               4         bbb     25%

ありがとうございます。

解決方法は?

66.7%ではなく、66.6%のような結果が欲しい場合は、次のようにします。 trunc() ではなく round() (後者の方がいいかもしれませんが)。また、a/bは小数点以下3桁に丸める必要があるので、100倍した後に1つ残ります。

そうすれば、1つのクエリで両方のカウントを得ることができ、同じクエリでパーセント計算も追加できます。

select count(case when propkey = 0 then 1 end) countid0,
       count(propkey) totalidcount,
       source,
       to_char(round(count(case when properkey = 0 then 1 end)/count(properkey), 3)*100) 
                                                                   || '%' percentageids0
from......