所以我的部分查詢是這樣的
select
column_a,
0.75 * power(0.93, (0.1428 * column_b))
讓我們說column_b
有值3
有沒有辦法將這條線表示0.75 * power(0.93, (0.1428 * column_b))
為這樣?
0.75 * power(0.93, (0.1428 * 3)) + 0.75 * power(0.93, (0.1428 * 2)) + 0.75 * power(0.93, (0.1428 * 1))
基本上,對於 column_b 的任何值,函數都會重複。有沒有辦法在 Postgres sql 中表示這個?
由於此計算將找到0.75 * power(0.93, (0.1428 * column_b))
重複次數的總和column_b
,因此您可以使用在對計算結果求和之前generate_series
生成數量的增量,column_b
例如。
架構 (PostgreSQL v13)
create table sample (
column_a char(1),
column_b int
);
insert into sample values ('a',3), ('b',2);
使用 generate_series 生成可能的數字
select
column_a,
column_b,
array(
select b_val
from generate_series(1,column_b) b_val
) as computed_column
from sample;
列_a | 列_b | 計算列 |
---|---|---|
一種 | 3 | 1,2,3 |
乙 | 2 | 1,2 |
找到重複計算的總和
select
column_a,
column_b,
(
select sum(0.75 * power(0.93, (0.1428 * b_val)))
from generate_series(1,column_b) b_val
) as computed_column
from sample;
列_a | 列_b | 計算列 |
---|---|---|
一種 | 3 | 2.203924916826077250 |
乙 | 2 | 1.476883153703056500 |
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句