Dans votre requête actuelle, vous comptez le nombre de lignes dans la table des maladies, une fois en utilisant la colonne condition_id, une fois en utilisant la colonne person_id. Mais le nombre de lignes est le même - c'est pourquoi vous obtenez 1 comme résultat.
Je pense que vous devez trouver le nombre de valeurs différentes pour ces colonnes. Cela peut être fait en utilisant count distinct :
select (COUNT(DISTINCT condition_id)/COUNT(DISTINCT person_id)) as prevalence
from disease
where condition_id=12345;