Trong truy vấn hiện tại của bạn, bạn đếm số hàng trong bảng bệnh, một lần sử dụng cột condition_id, một lần sử dụng cột person_id. Nhưng số hàng là như nhau - đây là lý do tại sao bạn nhận được 1.
Tôi nghĩ bạn cần tìm số lượng các giá trị khác nhau cho các cột này. Điều này có thể được thực hiện bằng cách sử dụng số đếm khác biệt:
select (COUNT(DISTINCT condition_id)/COUNT(DISTINCT person_id)) as prevalence
from disease
where condition_id=12345;