У меня есть таблица, которая выглядит примерно так:
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
Пользователь может запросить на основе нескольких лет, и он вернет сумму значений, сгруппированных по имени, как таковые (предполагаемые запрошенные годы - 2000 - 2001):
Name SUM(Value)
A 8
B 7
Теперь я хотел вставить вычисленное поле, которое выводит отношение суммы значений каждого имени для ВСЕХ лет к сумме всех значений. В основном процент всех значений, приписываемых A и B, соответственно, например:
Name SUM(Value) % Of Total
A 8 0.484 (16 / 33)
B 7 0.516 (17 / 33)
Обратите внимание, что даже если пользователь запросил только 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`;
Пожалуйста, помогите! Я очень новичок и не понимаю SQL на глубине, поэтому, пожалуйста, проясните любой расширенный код. Спасибо за вашу доброту.