Estou tentando executar a seguinte consulta para fornecer a% de linhas na minha patients
tabela que possuem um valor na refinst
coluna. Eu continuo recebendo um resultado de 0.
select (count (refinst) / (select count(*) from patients) * 100) as "Formula"
from patients;
A tabela possui 15556 linhas e select count(refinst) from patients
informa que 1446 delas possuem um valor na refinst
coluna. A resposta que gostaria de obter da consulta seria 30,62 ( 1446/15556*100=30.62XXXXX
, arredondada para duas casas decimais).
Tenho certeza de que tem algo a ver com o tipo de dados dos resultados da contagem (números inteiros, estou assumindo). Se eu dividir um número inteiro por um número inteiro e o resultado for menor que 0, ele será truncado para 0 correto? Se for esse o caso, alguém pode me mostrar como converter os resultados das contagens como um número com 2 casas decimais, para que o resultado também seja arredondado para 2 casas decimais?
Tenho certeza de que há uma maneira melhor de escrever esse código do que várias instruções de contagem. Estou procurando uma maneira mais eficiente do processador para escrever essa consulta em particular.