SQL Server-查找计算列的百分比

SQL Server-查找计算列的百分比,sql,sql-server,percentage,Sql,Sql Server,Percentage,这些是我的记录,我用这个sql获取这些记录,但很难找到百分比 SELECT (SELECT gender FROM tbl_gender WHERE genderCode = u.genderCode) AS gender, COUNT(cp.UserID) AS people FROM tbl_campaign_master cm INNER JOIN tbl_campaign_played cp ON cp.CampaignCode = cm.campaignCode I

这些是我的记录,我用这个sql获取这些记录,但很难找到百分比

 SELECT 
  (SELECT gender    FROM tbl_gender WHERE genderCode = u.genderCode) AS gender,
  COUNT(cp.UserID) AS people
FROM tbl_campaign_master cm

INNER JOIN tbl_campaign_played cp ON cp.CampaignCode = cm.campaignCode
INNER JOIN tbl_users u ON cp.UserID = u.userId

WHERE cm.campaignCode = 'CM00000179'
GROUP BY u.genderCode

Gender    People
 Male        1
Female       1
如何获得这些结果

Gender    People  Percentage
 Male        1       50%
Female       1       50%

我想知道,根据您的输出,我们将如何根据示例查询确定每行的百分比

declare  @t table (gender varchar(10),people int)

insert into @t (gender,people)values('male',1)
insert into @t (gender,people)values('female',1)


Select gender,people, CONVERT(VARCHAR(10),(Count(people)* 100 / (Select Count(*) From @t)))+'%' as Score
From @t
Group By gender,people
您可以根据我的假设修改查询中的代码

SELECT 
  (SELECT gender    FROM tbl_gender WHERE genderCode = u.genderCode) AS gender,
  CONVERT(VARCHAR(10),COUNT(cp.UserID)/(Select Count(*) From tbl_campaign_played WHERE campaignCode = cm.campaignCode ))) AS people
FROM tbl_campaign_master cm

INNER JOIN tbl_campaign_played cp ON cp.CampaignCode = cm.campaignCode
INNER JOIN tbl_users u ON cp.UserID = u.userId

WHERE cm.campaignCode = 'CM00000179'
GROUP BY u.genderCode

在您的第一次查询中,我根据查询结果设置了临时表,并设置了所有临时表,第二次查询给出了“聚合或分组错误”,谢谢您,伙计。您让我度过了美好的一天