Saya mencoba menjalankan kueri berikut untuk memberikan% baris di patients
tabel saya yang memiliki nilai refinst
kolom. Saya terus mendapatkan hasil 0.
select (count (refinst) / (select count(*) from patients) * 100) as "Formula"
from patients;
Tabel memiliki 15556 baris, dan select count(refinst) from patients
memberitahu saya bahwa 1446 dari mereka memiliki nilai di refinst
kolom. Respons yang ingin saya dapatkan dari kueri adalah 30,62 ( 1446/15556*100=30.62XXXXX
, dibulatkan menjadi dua desimal).
Saya cukup yakin ini ada hubungannya dengan tipe data dari hasil perhitungan (bilangan bulat yang saya asumsikan). Jika saya membagi integer dengan integer dan hasilnya kurang dari 0 maka terpotong menjadi 0 benar? Jika itu masalahnya, dapatkah seseorang menunjukkan kepada saya cara melemparkan hasil penghitungan sebagai angka dengan 2 tempat desimal sehingga hasilnya akan dibulatkan menjadi 2 tempat desimal juga?
Saya yakin ada cara yang lebih baik untuk menulis kode ini daripada banyak pernyataan hitungan. Saya mencari cara yang lebih efisien prosesor untuk menulis kueri ini secara khusus.