【发布时间】:2020-10-07 06:05:13
【问题描述】:
我想在 sql 结果的每一行显示性别百分比。我的数据如下:
CREATE TABLE Results
( employeeId varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
, Employee_Name varchar(228) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
, gender varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
, Citizenship varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
insert into Results values
(1,'A','M','India'),
(2,'B','F','India'),
(4,'D','F','France'),
(3,'C','F','Lebanon'),
(5,'E','M','Sri Lanka');
按性别计数的百分比将是 M 40, F 60 使用
select gender, round(count(gender) * 100/sum(count(gender)) over (),2) percentage
from Results
group
by gender;
此查询将返回 M & F 的结果,但我希望为表中的每一行重复百分比,
employeeId EmployeeName gender Citizenship Percentage
1 A M India 40
2 B F India 60
4 D F France 60
3 C F Lebanon 60
5 E M Sri Lanka 40
我该怎么做?
【问题讨论】: