gpt4 book ai didi

mysql - Excel 数组公式与 MySQL 等价

转载 作者:行者123 更新时间:2023-11-29 01:23:12 27 4
gpt4 key购买 nike

我一直在 excel 中使用一个非常简单的数组公式来处理一些数据集,但是它们变得太大并且在我更新计算时完全破坏了我的计算机性能。

excel表格和MySQL数据库布局如下:

+-Timestamp-+-value-+
| 1340816430| .02 |
---------------------

x600,000 行

这是 excel 公式:

{=AVERAGEIFS(B:B,A:A,"<"&A1+1000,A:A,">"&A1-1000)}

返回值的平均值,是 Excel 工作表中的第三列。我是否有任何合理的方法来创建一个 MySQL 查询,该查询执行类似的操作并返回一个列,其中的值在我运行 excel 的公式时会出现在第三列中?

最佳答案

如果您乐于使用 Excel 公式,您可以大大加快计算速度(在我的系统上超过 3000 倍)。假设 A 列包含 ASCENDING ORDER 中的时间戳,B 列包含值(如果尚未排序,则使用 E​​xcel 排序)。
在 C 列中输入 =IFERROR(MATCH(A1-1000,$A:$A,1),1) 并复制下来。这会计算出行号减去 1000 时间戳。
在 D 列中输入 =IFERROR(MATCH(A1+1000,$A:$A,1),1048576) 并复制下来。这将计算第 1000 行时间戳的行号。
在 E 列中输入 =AVERAGE(OFFSET(B1,C1-ROW(),0,D1-C1+1,1)) 并向下复制。这计算了从第一行到最后一行的子集范围的平均值。

在我的系统上,这个 full 在 20 秒内计算了 1000K 行。
这种方法的缺点是它的 volatile 因此,只要您进行更改,就会重新计算,但我假设您无论如何都处于手动计算模式。

关于mysql - Excel 数组公式与 MySQL 等价,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11385680/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com