Próbuję uruchomić następujące zapytanie, aby podać% wierszy w mojej patients
tabeli, które mają wartość refinst
kolumny. Ciągle otrzymuję wynik 0.
select (count (refinst) / (select count(*) from patients) * 100) as "Formula"
from patients;
Tabela ma 15556 wierszy i select count(refinst) from patients
mówi mi, że 1446 z nich ma wartość w refinst
kolumnie. Odpowiedź, którą chciałbym uzyskać z zapytania, wynosiłaby 30,62 ( 1446/15556*100=30.62XXXXX
w zaokrągleniu do dwóch miejsc po przecinku).
Jestem pewien, że ma to coś wspólnego z typem danych wyników zliczania (zakładam, że liczby całkowite). Jeśli podzielę liczbę całkowitą przez liczbę całkowitą, a wynik jest mniejszy niż 0, to zostanie obcięty do 0, prawda? Jeśli tak jest, czy ktoś może mi pokazać, jak rzutować wyniki liczenia jako liczbę z 2 miejscami po przecinku, aby wynik również został zaokrąglony do 2 miejsc po przecinku?
Jestem pewien, że istnieje lepszy sposób na napisanie tego kodu niż wiele instrukcji zliczania. Szukam w szczególności bardziej wydajnego sposobu na napisanie tego zapytania.