SQL语句中的返回百分比而不是数字
我有以下Select语句:SQL语句中的返回百分比而不是数字,sql,sql-server,Sql,Sql Server,我有以下Select语句: SELECT CONVERT(VARCHAR(50), 'Black Ownership') AS Category, COUNT(temp.IndividualId) AS NumberForCategory, COALESCE(SUM(CASE WHEN temp.RaceId = 1 THEN 1 ELSE 0 END), 0) AS AfricanHeadCount, 返回: 我试图实现的是,AfricanHeadCount列应该
SELECT
CONVERT(VARCHAR(50), 'Black Ownership') AS Category,
COUNT(temp.IndividualId) AS NumberForCategory,
COALESCE(SUM(CASE WHEN temp.RaceId = 1 THEN 1 ELSE 0 END), 0) AS AfricanHeadCount,
返回:
我试图实现的是,
AfricanHeadCount
列应该是NumberForCategory
除以整个总和乘以100得到一个百分比。因此,AfricanHeadCount
应该是0.33
而不是1,我如何实现这一点?最简单的方法是使用AVG()
:
只需像通常对百分比使用基本除法:
Subset Number/Total Number=Subset percentage
(请注意,对于decimal
答案,您需要使用小数。)为什么转换(VARCHAR(50),“黑色所有权”)
?
AVG(CASE WHEN temp.RaceId = 1 THEN 100.0 ELSE 0 END) AS African_percentage,