Я намагаюся запустити наступний запит, щоб вказати% рядків у моїй 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 десяткових знаків?
Я впевнений, що існує кращий спосіб написання цього коду, ніж заява з кількома підрахунками. Я шукаю більш ефективний процесор спосіб написання цього запиту, зокрема.