简体   繁体   中英

SQL Server - Find Percentage of calculated column

These are my records which i am fetching with this sql , but struggling with finding percentage.

 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

How to get these results

Gender    People  Percentage
 Male        1       50%
Female       1       50%

I want to know , how we will percentage of each row

based on your output just sample query

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

you can modify the code in you query as per my assumption

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM