所以我的部分查詢是這樣的
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 中表示這個?
uj5u.com熱心網友回復:
由于此計算將找到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 上的作業演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/366509.html
標籤:sql PostgreSQL的
下一篇:每個專案的值加一
