Você está tentando contar linhas distintas, mas não está usando um
count(distinct ...)
SELECT
COUNT(distinct c.id) as "Total Customers",
COUNT(distinct p.id) as "Total Sales",
COUNT(distinct c.id) * 1.00 / COUNT(distinct p.id) as "Sales per customer"
FROM test_customers c
LEFT OUTER JOIN test_purchases p ON c.id = p.cid
Observe que o desempenho não é ótimo