如果我的问题无关紧要,我很抱歉。因为我不是mysql专家。
我的网站上有调查。如果有人对我的调查进行投票,我想向选民显示调查结果。
这是数据库结构;
调查
表格(包括调查名称说明和survey_id
)
survey_choices
表格(包括调查选项并与调查表的 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和可见性= 1
%percentage = %100?
任何帮助都会非常有用。
最佳答案
您应该将相同的条件添加到交叉连接中。目前,在您的选择中,您对所有 Survey_vote_count 进行了汇总,但没有相同的条件(可见性和 Survey_id)。
关于Mysql计算选定行的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41198739/