如何在 POSTGRES 選擇查詢中進行重複計算?

只是一個編碼器

所以我的部分查詢是這樣的

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

查看 DB Fiddle 上的工作演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章