如果有人问我在表1 中选择红色的人的百分比
有没有比手动计算更有效的方法?
表1
color_picked
Red - 10
Blue - 20
green- 70
示例数据很傻,但最后的查询应该可以随心所欲。它将返回(0,1]中的一个数字。如果您希望它显示在(0100]中,则将其更改为乘以100.0而不是1.0。
CREATE TABLE Table1 (person_id int, color_picked text);
INSERT INTO Table1 (person_id, color_picked)
VALUES
(1,'Red'),
(2,'Blue'),
(3,'Blue'),
(4,'Green'),
(5,'Green'),
(6,'Green'),
(7,'Green'),
(8,'Green'),
(9,'Green'),
(10,'Green');
SELECT color_picked, COUNT(*) * 1.0 / SUM(COUNT(*)) OVER () AS pct_color
FROM Table1
GROUP BY color_picked;