Я пытаюсь выполнить следующий запрос, чтобы обеспечить% строк в моей patients
таблице, которые имеют значение refinst
столбца. Я продолжаю получать результат 0.
select (count (refinst) / (select count(*) from patients) * 100) as "Formula"
from patients;
Таблица содержит 15556 строк и select count(refinst) from patients
сообщает, что 1446 из них имеют значение в refinst
столбце. Ответ, который я хотел бы получить от запроса, был бы 30,62 ( 1446/15556*100=30.62XXXXX
округленный до двух десятичных знаков).
Я почти уверен, что это как-то связано с типом данных результатов подсчета (я предполагаю целые числа). Если я разделю целое число на целое число, а результат будет меньше 0, он будет усечен до 0 правильно? Если это так, может кто-нибудь показать мне, как привести результаты подсчета к числу с двумя десятичными знаками, чтобы результат также округлялся до 2 десятичных знаков?
Я уверен, что есть лучший способ написать этот код, чем несколько операторов подсчета. Я ищу более эффективный для процессора способ написать этот запрос в частности.