给出这样的表结构:
class
和示例数据,例如:
"numeric"
我希望我的选择结果像这样排挤行和求和的总数,我不在乎丢失的数据(行表示无关数据):
id | name | amount | other1 | other2 | other3
我尝试过这样的事情:
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 | ...
我得到了错误:
1 | a | 120 | unrelevant data | ...
3 | b | 80 | unrelevant data | ...
5 | c | 50 | unrelevant data | ...
所以我知道我想念一些东西。
答案 0 :(得分:1)
您可以将max()
用于id
:
SELECT MAX(id), "name", SUM(amount), MAX(other1) . . .
FROM test_table
GROUP BY "name"
答案 1 :(得分:0)
您可以考虑这样的事情。
SELECT t1.id, t2.name, t1.amount, t2, t2.other1, t2.other2, t2.other3
FROM (
SELECT id, SUM(amount) as amount FROM test_table
GROUP BY id) as t1
LEFT JOIN test_table t2 on t2.id = t1.id