2017-07-12 72 views
0

我需要一個PostgreSQL select語句來計算數學系列和結果添加一個名爲列「TOTAL_DAYS」 .The公式計算數學系列PostgreSQL的

enter image description here

變量insts對於來來自SQL表本身。是否可以在不使用PL/SQL的情況下進行計算?

回答

2

在這種情況下,你可以拉30你的總和,並用封閉的形式解決方案的總和30 * (1 + 2 + 3 + .... + insts) = 30 * insts * (insts + 1)/2Wikipedia

如果你有一個系列,沒有一個封閉的形式,你仍然可以在SQL中這樣做,如下所示:

SELECT 
    my_table.insts, 
    (
    SELECT SUM(i*30) 
    FROM generate_series(1, insts) AS xs(i) 
) as "sum" 
FROM my_table; 
0

是這樣的東西你在找什麼?

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; 
2

你的公式基本上是30 *(數字1..n之和)。

從1到n開始的數字總和的公式爲:n *(n + 1)/ 2。

所以SQL SELECT語句:

select 30*insts*(insts+1)/2 from YOUR_TABLE