Написание процедуры для перебора чисел предполагает, что вы не знаете, как подходить к работе с наборами данных в SQL.Такие вещи, как суммирование набора чисел, не должны требовать написания цикла вручную (и запись этого в plpgsql не играет на полную силу).
Вы можете создать набор чисел в диапазоне, используя вспомогательную функциюgenerate_series
и возведите их в квадрат, чтобы получить все значения для суммирования:
steve@steve@[local] =# SELECT x, x*x FROM generate_series(2, 5) x;
x | ?column?
---+----------
2 | 4
3 | 9
4 | 16
5 | 25
(4 rows)
Затем просто используйте агрегатную функцию SUM()
:
steve@steve@[local] =# SELECT sum(x*x) FROM generate_series(2, 5) x;
sum
-----
54
(1 row)