如何让SQL返回一个百分比值



如果有人问我在表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;

相关内容

最新更新