小编Joh*_*ohn的帖子

MySQL - 如何基于另一个SELECT的值进行SELECT

我有一个看起来像这样的表:

Name    Year   Value
 A      2000     5
 A      2001     3
 A      2002     7
 A      2003     1
 B      2000     6
 B      2001     1
 B      2002     8
 B      2003     2
Run Code Online (Sandbox Code Playgroud)

用户可以根据年份进行查询,并返回按名称分组的值之和(假设查询年份为2000 - 2001年):

Name   SUM(Value)
 A         8
 B         7
Run Code Online (Sandbox Code Playgroud)

现在,我想插入一个计算字段,该字段输出所有年份的每个名称的值之和与所有值之和的比率.基本上分别归因于A和B的所有值的百分比,如:

Name   SUM(Value)   % Of Total
 A         8            0.484      (16 / 33)
 B         7            0.516      (17 / 33)
Run Code Online (Sandbox Code Playgroud)

请注意,即使用户仅查询2000-2001,我希望计算使用所有年份的总和.我一直在寻找和试验几个小时,我无法弄清楚如何.我只知道如何总结所查询的年份:

SELECT `Name`, SUM(`Value`)/(SELECT SUM(`Value`) FROM `table1`) AS "% of Total"
FROM `table1`
WHERE `Year` BETWEEN 2000 AND 2001
GROUP BY `Name`;
Run Code Online (Sandbox Code Playgroud)

请帮忙!我是一个非常新手,并且不太了解SQL,所以请澄清任何高级代码.谢谢你的好意.

mysql

43
推荐指数
2
解决办法
21万
查看次数

标签 统计

mysql ×1