【发布时间】:2018-04-01 12:19:44
【问题描述】:
我当前的查询按预期返回了每个种族的总人数,例如:
Name | Count
----------------------
White | 22
Asian | 15
Black | 12
等等。但是我想添加一个第三列,它返回每个种族占总数的百分比,我该怎么做?
SELECT
eo.EthnicOriginName,
ISNULL(e.Number, '')
--CAST(e.Number AS FLOAT) / CAST(COUNT(e.intEthnicOriginID) AS FLOAT) * 100
FROM
tblEthnicOrigin eo
INNER JOIN tblPerson p ON p.intEthnicOriginID = eo.EthnicOriginID
LEFT JOIN (SELECT intEthnicOriginID, COUNT(p.intPersonID) [Number]
FROM tblPerson p
INNER JOIN tblClient c on c.intPersonID = p.intPersonID
GROUP BY intEthnicOriginID) e on e.intEthnicOriginID = eo.EthnicOriginID
GROUP BY
eo.EthnicOriginName, e.Number
【问题讨论】:
-
您使用的是哪个 DBMS? (MySQL 或 SQL Server 或 Oracle 或 ...)
-
我正在使用 SQL Server
-
那么戈登的答案应该就是你要找的。span>
标签: sql sql-server count percentage