假设我有一张桌子看起来像:

|   C1   | C2  | C3 | C4  |
|  AAAA  | 11  | 14 | 12  |
|  AAAA  | 21  | 04 | 31  |
|  AAAA  | 17  | 24 | 13  |
|  AAAA  | 13  | 13 | 14  |
|  AAAA  | 11  | 23 | 12  |
|  AAAA  | 19  | 21 | 15  |
|  BBBB  | 11  | 11 | 19  |
|  BBBB  | 16  | 11 | 18  |
|  BBBB  | 17  | 14 | 13  |
|  BBBB  | 13  | 12 | 13  |
|  BBBB  | 12  | 21 | 11  |
|  BBBB  | 12  | 21 | 13  |

这就是我想要的样子:
|   C1  | C2  | C3 | C4  |
|  AAAA | 92  | 99 | 97  |
|  BBBB | 81  | 90 | 87  |

我知道我可以这样做:
SELECT SUM( C2 ), SUM( C3 ), SUM( C4 )
FROM mytable;

问题是它占用了整个列的全部和。有没有一种方法可以使它相对于C1中的内容来做呢?

最佳答案

你错过了一组。

SELECT C1, SUM(C2), SUM(C3), SUM(C4)
FROM mytable GROUP BY C1

未指定group by时,它将对整个表求和。

关于sql - 将某些行与另一列一起添加-Postgres,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35182054/

10-15 18:17