Mysql 计算所选行的百分比

Mysql Calculate Percentage Of Selected Rows

如果我的问题无关紧要,我很抱歉。因为我不是 mysql.

的专家

我的网站上有调查。如果有人投票给我的调查,我想向选民展示调查结果。

这是数据库结构;

surveys Table(包括调查名称描述和 survey_id

survey_choices Table(包括调查选项和与 survey_id 相关的调查 Table)

我正在尝试仅计算可见的调查选项百分比。

如果我只有 1 个调查,它正在计算正确的结果。但是如果我有超过 1 个调查,mysql 计算所有 table.

的全部 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 %percentage = %100?

任何帮助将不胜感激。

您应该将相同的条件添加到您的交叉联接中。目前,在您的 select 中,您对所有 survey_vote_count 求和,但条件不相同(可见性和 survey_id.