【发布时间】:2022-01-27 03:07:32
【问题描述】:
SELECT
t.id,
sum(o.amount),
t.parent_id
FROM tab t
LEFT JOIN order o ON o.deal = t.id
GROUP BY t.id
当前输出:
| id | sum | parent_id |
|---|---|---|
| 1 | 10 | |
| 2 | 10 | |
| 3 | 15 | 5 |
| 4 | 30 | 5 |
| 5 | 0 | |
| 6 | 0 | 8 |
| 7 | 0 | 8 |
| 8 | 20 |
所需的逻辑,如果该行包含 parent_id 则跳过它,但将所有内容添加到 sum 字段中,因此对于 id 3、4、5,总数将为 45,并且仅显示 id 5。在某些情况下,总和位于“子选项卡”或“主选项卡”中,但所有内容都应加在一起。 期望的输出:
| id | sum | parent_id |
|---|---|---|
| 1 | 10 | |
| 2 | 10 | |
| 5 | 45 | |
| 8 | 20 |
到目前为止,我尝试过的是进行子选择并使用 group by。有人能指出我正确的方向吗?
【问题讨论】:
标签: postgresql