【问题标题】:Mysql Calculate Percentage Of Selected RowsMysql计算所选行的百分比
【发布时间】:2016-12-17 20:52:46
【问题描述】:

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

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

这是数据库结构;

surveys 表格(包括调查名称说明和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 and visibility = 1 %percentage = %100?

任何帮助将不胜感激。

【问题讨论】:

    标签: mysql sum cross-join


    【解决方案1】:

    您应该将相同的条件添加到您的交叉联接中。目前,在您的选择中,您将所有的survey_vote_count 相加,而没有相同的where 条件(可见性和survey_id。

    【讨论】:

    • 您好,谢谢您的回答。但是怎么做? SELECT SUM(survey_vote_count) AS s FROM survey_votes WHERE survey_id = surveyId AND visibility = :visibility ?
    猜你喜欢
    • 2013-03-22
    • 2012-09-05
    • 1970-01-01
    • 2022-01-23
    • 2012-04-05
    • 2012-05-01
    • 2013-11-15
    • 2012-09-20
    • 2016-09-26
    相关资源
    最近更新 更多