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.
如果我的问题无关紧要,我很抱歉。因为我不是 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.