J'essaie d'exécuter la requête suivante pour fournir le% de lignes de ma patientstable qui ont une valeur dans la refinstcolonne. J'obtiens toujours un résultat de 0.
select (count (refinst) / (select count(*) from patients) * 100) as "Formula"
from patients;
Le tableau comporte 15556 lignes et select count(refinst) from patientsm'indique que 1446 d'entre elles ont une valeur dans la refinstcolonne. La réponse que j'aimerais obtenir de la requête serait 30,62 ( 1446/15556*100=30.62XXXXX, arrondie à deux décimales).
Je suis presque sûr que cela a quelque chose à voir avec le type de données des résultats de comptage (entiers, je suppose). Si je divise un entier par un entier et que le résultat est inférieur à 0, il est tronqué à 0 correct? Si tel est le cas, quelqu'un peut-il me montrer comment convertir les résultats des décomptes en nombre avec 2 décimales afin que le résultat soit également arrondi à 2 décimales?
Je suis sûr qu'il existe une meilleure façon d'écrire ce code que plusieurs instructions de comptage. Je recherche un moyen plus efficace pour écrire cette requête en particulier.