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

时间:2014-08-11 08:04:39

标签: 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
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%

我想知道,每行的百分比如何

1 个答案:

答案 0 :(得分:0)

基于您的输出只是示例查询

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