0

所以我有 1 列和 100 万行数据。我需要计算第 1-100 行的最大值,然后是 2-101、3-102,一直到一百万行。结果会写在该列旁边的空列中。因此,第 1-100 行的最大数量将在第 1 行第 2 列中。第 2-101 行的最大数量写入第 2 行第 2 列。依此类推。

我来自excel,做这种事情非常容易。然而,我需要做的事情对于excel来说太多了。有人告诉我 mysql 将是这类东西的不错选择。很抱歉,如果我似乎根本没有做任何研究,我现在就埋头苦干,但我仍然无法将多个概念放在一起来弄清楚我的东西,所以欢迎指点。不幸的是,这只是我需要/想要做的一小部分。

4

1 回答 1

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 行中没有与之关联的任何行号,除非您为此添加列目的。

于 2012-06-19T23:36:26.080 回答