如果我的问题无关紧要,我很抱歉。因为我不是mysql的专家。
我的网站上有调查问卷。如果有人对我的调查进行投票,我想向选民展示调查结果。
这是DB结构;
surveys
表(包括调查名称说明和survey_id
)
survey_choices
表(包括调查Chocies并与调查表survey_id
相关)
我正在尝试仅计算可见的调查选项%百分比。
如果我只有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?
任何帮助都会大大增加。
答案 0 :(得分:1)
您应该为交叉联接添加相同的条件。目前,在您的选择中,您对所有survey_vote_count求和,而不是相同的where条件(visibility和survey_id。