SQL 计算具有相同 sub_id 的两个值的百分比。

SQL calculate percentage of two values with same sub_id.

我正在做一个项目,我列出了 5 个问题,每个问题有 2 个解决方案。用户可以对每个问题的一个解决方案进行投票。现在我必须计算每个问题的最高价值的百分比。

例如在问题1中,我对方案1有20票,对方案2有30票,我想得到60%。我知道我必须将每个问题的两个投票值一起计算除以 100,然后乘以最高值。

如何在我的 dao 中执行此操作(使用 sql)?我是否必须在 table 'solutions' 中创建另一列?

table: solutions
+----------+------------+---------+
|    id    | id_problem |  vote   |
+----------+------------+---------+
|    1     |     1      |    25   |
|    2     |     1      |    10   |
|    3     |     2      |    18   |
|    4     |     2      |    2    |
|    5     |     3      |    6    |
|    6     |     3      |    7    |
|    7     |     4      |    11   |
|    8     |     4      |    4    |
|    9     |     5      |    5    |
|    10    |     5      |    2    |
+----------+------------+---------+

试试这个:

select 
    id_problem,
    CONCAT(ROUND(MAX(vote) / SUM(vote), 2) * 100, '%') as Percentage
from solutions
group by id_problem;