3
count()を使用してパーセンテージを決定するPostgreSQL(キャストの問題)
次のクエリを実行して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ステートメントよりも良い方法があると確信しています。特にこのクエリを書くための、よりプロセッサ効率の良い方法を探しています。
19
postgresql
count
cast