2012-06-19 22 views
0

所以我有1列和100萬行數據。我需要計算行1-100的最大值,然後是2-101,3-102,一直到一百萬行。結果會寫在旁邊的空欄中。所以行1-100的最大數量將在行1,列2中。並且第2-101行的最大數量寫入第2行第2列。依此類推。我該如何做100萬次最大值計算,每個100行範圍內的結果寫入新列?

我來自excel,做這種事情非常簡單。然而,我需要做的東西對於excel來說太過分了。我被告知MySQL對於這類東西來說是一個不錯的選擇。如果看起來我沒有做任何研究,我很抱歉,我現在被埋在裏面,但我仍然無法將多個概念聯繫在一起,以便讓我的東西變成現實,所以我們歡迎指點。這只是我不幸需要/想要做的一小部分。

回答

1

MySQL是不是的電子表格,你不應該嘗試使用它,就好像它是。您需要完全重新考慮您的算法並使其適應在數據庫中工作。

對於這種情況,您需要添加一列以定義行的順序。你改變你的數據模型後,您的查詢可能會喜歡這樣的事情(不會在MySQL工作,但不幸的是,因爲它不具備分析功能支持):

SELECT MAX(col) OVER (
    ORDER BY id 
    ROWS BETWEEN CURRENT ROW AND 99 FOLLOWING 
) AS running_maximum 
FROM table1 

但首先你要需要在表中添加一個id列。沒有這一點,你的行沒有明確的順序和談論行「1-100」沒有意義,因爲(不像在Excel中)在MySQL行中沒有任何行號與他們關聯,除非你添加一列目的。

+0

+1 - MySQL不會隱式關心行的排序,如果您關心行的排序,這不太適合。 – cheeken

+0

那麼如果這是明顯的事情,那麼我將需要更多地瞭解這一點。但是,你知道我需要將這些數據與其他數據一起使用。所以事情越來越碎片,沒有理由?我沒有看到將數據放入新字段時出了什麼問題? – user1463899

+0

好吧謝謝你的答案!和代碼。這有助於我更好地理解mysql。 – user1463899

相關問題