【发布时间】:2020-06-09 10:21:56
【问题描述】:
我有一张这样的桌子,
| id | name | subtask | maintask |
|----|------|---------|----------|
| 1 | t1 | 11 | 20 |
| 1 | t1 | 12 | 20 |
| 1 | t1 | 1 | 30 |
| 2 | t1 | 2 | 20 |
| 2 | t1 | 2 | 20 |
我想准备这样的结果
| id | name | sum_of_subtask | sum_of_maintask | diff |
|----|------|----------------|-----------------|------|
| 2 | t1 | 4 | 40 | 36 |
需要选择最大ID,然后对subtask和maintask求和,那么最后一列就是sum(subtask)和sum(maintask)的差
我尝试了以下查询,但它计算所有列的总和。
select max(id), name, sum(subtask),sum(maintask),sum(subtask-maintask) from tbl
group by name
【问题讨论】:
标签: sql postgresql window-functions