我需要在Postgresql select语句中计算一个数学级数,并将结果添加为一个名为“total_days”的列
变量insts来自SQL表本身。不使用PL/SQL就可以计算吗?
最佳答案
在这种情况下,您可以从总和中提取30,并对总和使用闭合形式的解30 * (1 + 2 + 3 + .... + insts) = 30 * insts * (insts + 1) / 2
Wikipedia
如果您有一个没有封闭窗体的系列,您仍然可以在SQL中这样做:
SELECT
my_table.insts,
(
SELECT SUM(i*30)
FROM generate_series(1, insts) AS xs(i)
) as "sum"
FROM my_table;