我有一个用户表格,每个用户都有一个国家。我想要得到所有国家的用户数量列表,并且显示百分比/总数。目前我所拥有的是:
SELECT
country_id,
COUNT(*) AS total,
((COUNT(*) * 100) / (SELECT COUNT(*) FROM users WHERE cond1 = true AND cond2 = true AND cond3 = true)::decimal) AS percent
FROM users
WHERE cond1 = true AND cond2 = true AND cond3 = true
GROUP BY contry_id
两个查询的条件是相同的。我试图不使用子查询来完成这个任务,但是那样我无法得到用户总数而只能得到每个国家的总数。有没有一种方法可以不使用子查询来完成这个任务?我正在使用PostgreSQL数据库。非常感谢您的帮助。