2014-08-11 5 views
0

Это мои записи, которые я собираю с этим sql, но изо всех сил пытаюсь найти процент.SQL Server - Найти Процент вычисленного столбца

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% 

Я хочу знать, как мы будем процент каждой строки

ответ

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 
+0

С первым запросом я установил временную таблицу из моих результатов запроса и его весь набор и второй запрос дает «агрегацию или группу по ошибке», Благодаря buddy..you сделали мой день –

Смежные вопросы