2012-11-27 26 views
3

我有一個表temp_reading。它具有以下列(消費是索引鍵):如何在MySQL中執行SUM

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; 

請幫我解決這個問題。

+2

難道你不能做這個應用程序端?這在純SQL中很難做到。 – tadman

+0

是的,我可以在應用程序方面做到這一點,你可以請解釋我如何在應用程序方面做到這一點 –

+0

什麼是您的應用程序使用的編程語言? – Habibillah

回答

1
 select id,sum(consumption) as total 
    from temp_reading 
    group by id; 

我建議你不要有相同的ID(1,1,1.2,2 ...)

4

我建議你添加一個Primary Key上您的temp_reading表。 (閱讀更多關於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