次のクエリを実行してpatients
、refinst
列の値を持つテーブル内の行の%を提供しようとしています。結果が0のままになります。
select (count (refinst) / (select count(*) from patients) * 100) as "Formula"
from patients;
テーブルには15556行あり、そのうち1446行が列にselect count(refinst) from patients
値を持っていることがわかりrefinst
ます。クエリから取得したい応答は30.62(1446/15556*100=30.62XXXXX
小数点以下2桁に丸められます)になります。
カウント結果のデータ型(私が想定している整数)と関係があると確信しています。整数を整数で除算し、結果が0未満の場合、0に切り捨てられますか?その場合、カウントの結果を小数点以下2桁の数値としてキャストして、結果も小数点以下2桁に丸める方法を教えてもらえますか?
このコードを書くには、複数のcountステートメントよりも良い方法があると確信しています。特にこのクエリを書くための、よりプロセッサ効率の良い方法を探しています。