我有一个名为 temp_reading
的表。它有以下列(消费是一个索引键):
id consumption total
1 100
1 200
1 300
1 400
2 50
2 100
3 200
4 250
现在我想将总数显示为
id consumption total
1 100 100
1 200 300
1 300 600
1 300 900
2 50 50
2 100 150
3 200 200
4 250 250
是否可以像上面那样显示?
我尝试了以下查询:
SELECT id,consumption,sum(consumption) as total
FROM temp_reading
GROUP BY consumption;
请帮我解决这个问题。
最佳答案
我建议您在temp_reading
表上添加一个Primary Key
。 (阅读有关 Primary Keys 的更多信息)此键每行都是唯一的。然后你可以试试这个查询:
SELECT TR.id
, TR.consumption
, TR.consumption + IFNULL(SUM(TR2.consumption), 0) AS Total
FROM temp_reading TR
LEFT JOIN temp_reading TR2 ON TR.id = TR2.id AND TR.pk > TR2.pk
GROUP BY TR.pk;
我在 SQL Fiddle 中试过了.
关于mysql - 如何在 MySQL 中对行求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13578640/