【发布时间】:2020-06-10 16:12:52
【问题描述】:
以下假设是 postgres。
假设我有下表:
CREATE TABLE object (
object_id SERIAL PRIMARY KEY
object_category integer NOT NULL CHECK(value BETWEEN 1 AND 5)
);
我可以使用以下方法计算每个类别中的对象数量:
SELECT object_category,
count(object_category) number_of_objects,
FROM object
GROUP BY object_category;
,但是我怎样才能找到每个类别中的对象数量与对象总数的比率呢?例如,如果上述查询返回以下结果集:
object_category | number_of_objects
-----------------------------------
1 | 5
2 | 3
3 | 7
4 | 2
5 | 10
,我该如何返回:
object_category | object_ratio
------------------------------
1 | 0.185
2 | 0.111
3 | 0.259
4 | 0.074
5 | 0.370
我尝试将上述总和作为子查询计算,但我无法访问 number_of_objects,因为 postgres 抱怨缺少 group-by 子句,我不太明白。有什么帮助吗?
【问题讨论】:
标签: sql postgresql