Dav*_*tti 3 sql postgresql group-by sum aggregate-functions
给定一个像这样的表结构:
id | name | amount | other1 | other2 | other3
Run Code Online (Sandbox Code Playgroud)
和示例数据,例如:
1 | a | 40 | unrelevant data | ...
2 | a | 80 | unrelevant data | ...
3 | b | 30 | unrelevant data | ...
4 | b | 50 | unrelevant data | ...
5 | c | 20 | unrelevant data | ...
6 | c | 30 | unrelevant data | ...
Run Code Online (Sandbox Code Playgroud)
我希望我的选择结果压缩行并对压缩的金额进行求和,就像这样,我不关心丢失的数据(表示不相关数据的行):
1 | a | 120 | unrelevant data | ...
3 | b | 80 | unrelevant data | ...
5 | c | 50 | unrelevant data | ...
Run Code Online (Sandbox Code Playgroud)
我尝试过这样的事情:
SELECT id, "name", SUM(amount), other1, other2, other3 FROM test_table
GROUP BY "name"
Run Code Online (Sandbox Code Playgroud)
我收到错误:
column "id" must appear in the GROUP BY clause or be used in an aggregate function
Run Code Online (Sandbox Code Playgroud)
所以我知道我错过了一些东西。
您可以max()用于id:
SELECT MAX(id), "name", SUM(amount), MAX(other1) . . .
FROM test_table
GROUP BY "name"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2059 次 |
| 最近记录: |