Я работаю над вычислением процентного изменения в общих баллах по предмету за семестр, используя приведенную ниже таблицу.
name subject session term totalscore
-------------------------------------------
jack maths 2013/2014 1 70
jack eng 2013/2014 1 65
jack science 2013/2014 1 80
jack maths 2013/2014 2 72
jack eng 2013/2014 2 87
jack science 2013/2014 2 67
jack maths 2013/2014 3 70
jack eng 2013/2014 3 70
jack science 2013/2014 3 85
Я пытался использовать функцию windows LAG, как показано ниже, для вычисления общего балла процентное изменение, но получил значения NULL в столбце процент_обменов
SELECT
name,
subject,
term,
session,
totalscores - lag(totalscores, 1) over(partition by subject, session, term order by session, term) / 100*100
FROM
totalscore
GROUP BY
name, subject, session, term, totalscores
ORDER BY
term
Таблица ожидаемых результатов должна выглядеть следующим образом:
name subject session term totalscore percent_change
------------------------------------------------------------
jack maths 2013/2014 1 70 null
jack eng 2013/2014 1 65 null
jack science 2013/2014 1 80 null
jack maths 2013/2014 2 72 2%
jack eng 2013/2014 2 87 22%
jack science 2013/2014 2 67 -5%
jack maths 2013/2014 3 70 -2%
jack eng 2013/2014 3 70 -17%
jack science 2013/2014 3 85 16%
Есть ли способ написать это, чтобы исправить это ошибка? Я буду признателен за любую помощь, которую я могу получить. Благодаря.