2016-12-17 101 views
0

如果我的問題無關緊要,我很抱歉。因爲我不是mysql的專家。Mysql計算選定行的百分比

我在我的網站有調查。如果有人投票我的調查,我想向選民展示調查結果。

這裏是數據庫結構;

surveys(包括調查名稱描述和survey_id

Surveys

survey_choices(包括調查Chocies與survey_id有關調查表)

Survey Choices

我試圖只計算可見的調查選擇百分比。

如果我只有1個調查,它計算正確的結果。但如果我有超過1個調查,mysql計算整個survey_vote_count所有表的值。

這是我的MySQL查詢;

SELECT 
survey_vote_id, survey_vote_name, survey_vote_count, survey_id, 
survey_vote_count * 100/t.s AS survey_percentage 
FROM survey_votes 
CROSS JOIN (SELECT SUM(survey_vote_count) AS s FROM survey_votes) t 
WHERE visibility = :visibility 
AND survey_id = :surveyId 
ORDER BY `survey_votes`.`order_id` ASC 

我如何計算例如survey_id = 1 and visibility = 1%百分比=%100?

任何幫助將大大appcraft。

回答

1

您應該爲交叉連接添加相同的條件。目前,在你的選擇中,你總結了所有survey_vote_count不同的條件(能見度和survey_id。

+0

)你好,謝謝你的回答。 =:visibility'? – HddnTHA

+0

看起來正確 – TigOldBitties

+0

它的工作,非常感謝你(: – HddnTHA