当列值相同时,如何组合 postgres 中的行,并根据组合行对另一列求和?

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)

所以我知道我错过了一些东西。

Gor*_*off 5

您可以max()用于id

SELECT MAX(id), "name", SUM(amount), MAX(other1) . . .
FROM test_table
GROUP BY "name"
Run Code Online (Sandbox Code Playgroud)