我有一個表格,其中完成的交易數量和交易持續時間是按持續時間分組的。如何累計顯示行數據
現在我想累積例如添加事務:在持續時間1個交易是圖2,在時間爲2個交易(2 + 4)= 6,持續時間5個交易(6 + 3)= 9。 請建議此
我有一個表格,其中完成的交易數量和交易持續時間是按持續時間分組的。如何累計顯示行數據
現在我想累積例如添加事務:在持續時間1個交易是圖2,在時間爲2個交易(2 + 4)= 6,持續時間5個交易(6 + 3)= 9。 請建議此
方法看來你正在尋找cumulative
總和而是作爲MySQL不支持ANSI OLAP
功能,所以無法計算的ANSI標準方式。
單向可能是使用變量並繼續將當前值添加到前面的總和中,如下所示。
set @runningSum := 0;
select duration,
transactions,
@runningSum := @runningSum + transactions AS TransRunningSum
from t1;
結果:
duration transactions TransRunningSum
-------------------------------------------
1 2 2
2 4 6
5 3 9
6 1 10
7 2 12
11 1 13
13 1 14
15 1 15
更新1:
作爲科爾高興的查詢在mySQL中得到支持,您也可以像下面一樣使用它來獲得相同的結果。
SELECT duration
,transactions
,(
SELECT SUM(x.transactions)
FROM t1 x
WHERE x.duration <= t.duration
) AS TransRunningSum
FROM t1 t
ORDER BY t.duration;
結果:
duration transactions TransRunningSum
-------------------------------------------
1 2 2
2 4 6
5 3 9
6 1 10
7 2 12
11 1 13
13 1 14
15 1 15
謝謝。有用!! –
我們可以在不使用變量的情況下實現嗎?我需要在視圖中顯示這些值,並且在視圖中我們不能使用變量。請建議 –
您也可以使用更新的答案中顯示的相關查詢,儘管它不會像變量選項那樣快:-) – zarruq
下去。嘗試一下。如果你還在掙扎,請參閱https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-bea-a- very-simple-sql-query – Strawberry
你至少應該向我們展示你的預期輸出,這對我來說是不清楚的。 –