我有一个看起来像这样的表:
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 ×1