Вы, похоже, хотите получить «бегущую сумму», например,
select
no
, student
, sum(point) over(partition by student order by no) run_sum
from student
, и кажется, что дополнительная точка может вычитать 2-ю последнюю бегущую сумму из финала, как это.
WITH cte
AS (
SELECT
no
, student
, SUM(point) OVER (PARTITION BY student ORDER BY no) run_sum
, ROW_NUMBER() OVER (PARTITION BY student ORDER BY no DESC) rn
FROM student)
SELECT
t.*
, coalesce(t.rum_sum,0) - coalesce(ex.run_sum,0) AS extra_point
FROM cte t
LEFT JOIN (
SELECT
*
FROM cte
WHERE rn = 2) ex ON t.student = ex.student
AND t.rn = 1
AND ex.rn = 2
;
, но без дополнительных указаний по требуемой логике для extra_point, это всего лишь предположение.