SQL Server-查找计算列的百分比
这些是我的记录,我用这个sql获取这些记录,但很难找到百分比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
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
在您的第一次查询中,我根据查询结果设置了临时表,并设置了所有临时表,第二次查询给出了“聚合或分组错误”,谢谢您,伙计。您让我度过了美好的一天