【发布时间】:2021-06-02 00:40:09
【问题描述】:
考虑到我们可以有一、二、三或更多行,我想添加一个计算。我们可以使用关系获取所有数据,但我有点卡住了,因为关系的数量是未定义的。 例如,作为来源:
SELECT 123 AS id
,250 AS amount
,225 AS debt
,NULL AS relation
,1 AS rn
UNION ALL
SELECT 124 AS id
,150 AS amount
,25 AS debt
,123 AS relation
,2 AS rn
UNION ALL
SELECT 125 AS id
,160 AS amount
,50.25 AS debt
,124 AS relation
,3 AS rn
UNION ALL
SELECT 126 AS id
,80 AS amount
,25 AS debt
,125 AS relation
,4 AS rn
源表
| id | amount | debt | relation | rn |
|---|---|---|---|---|
| 123 | 250 | 225 | NULL | 1 |
| 124 | 150 | 25 | 123 | 2 |
| 125 | 160 | 50.25 | 124 | 3 |
| 126 | 80 | 25 | 125 | 4 |
茶几
| id | amount | debt | relation | rn | cal |
|---|---|---|---|---|---|
| 123 | 250 | 225 | NULL | 1 | 250 |
| 124 | 150 | 25 | 123 | 2 | 22.5 |
| 125 | 160 | 50.25 | 124 | 3 | 7.5375 |
| 126 | 80 | 25 | 125 | 4 | 3.75 |
我需要应用如下计算:
- 第 1 行:金额
- 第 2 行:row2.debt*row1.debt/row1.amount
- 第 3 行:row3.debt*row2.debt/row2.amount*row1.debt/row1.amount
- 第 4 行:row4.debt*row3.debt/row3.debt*row2.debt/row2.amount*row1.debt/row1.amount
- 等等..
我正在使用 dbt,但很高兴听到有关 BigQuery 或其他 SQL 的信息,因为我真的很好奇如何做到这一点。
【问题讨论】:
标签: sql google-bigquery dbt