我需要一個PostgreSQL select語句來計算數學系列和結果添加一個名爲列「TOTAL_DAYS」 .The公式計算數學系列PostgreSQL的
變量insts對於來來自SQL表本身。是否可以在不使用PL/SQL的情況下進行計算?
我需要一個PostgreSQL select語句來計算數學系列和結果添加一個名爲列「TOTAL_DAYS」 .The公式計算數學系列PostgreSQL的
變量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;
是這樣的東西你在找什麼?
create temp table vals (val integer);
insert into vals (val) values (1), (2), (3);
select val, sum(x)
from (select val, generate_series(1,val)*30 as x from vals) as y
group by val;
你的公式基本上是30 *(數字1..n之和)。
從1到n開始的數字總和的公式爲:n *(n + 1)/ 2。
所以SQL SELECT語句:
select 30*insts*(insts+1)/2 from YOUR_TABLE