0

我正在使用这个逻辑:

MYSQL 趋势线计算

计算一组时间序列数据的斜率。但是我的数据是这样的(随着时间的推移测量电流输出),“斜率”没有意义,因为它取决于轴的相对比例。例如,以毫安表示的电流在同一时间段内会产生与以安培表示的电流不同的斜率。我需要的是计算指定时间内的趋势是否代表一定百分比的增长。

总而言之,我正在使用这个 sql 查询:

    SELECT COUNT(*) AS N,SUM(UNIX_TIMESTAMP(timestamp)) AS Sum_X,
        SUM(UNIX_TIMESTAMP(timestamp) * UNIX_TIMESTAMP(timestamp)) AS Sum_X2,
        SUM(max_current) AS Sum_Y,
        SUM(max_current*max_current) AS Sum_Y2,
        SUM(UNIX_TIMESTAMP(timestamp) * max_current) AS Sum_XY
        FROM circuit_history
        WHERE circuit_filename = '".$cfn."'
        AND timestamp > date_sub(now(), interval 60 day)";

我的斜率是这样计算的:

$slope = ($row['N'] * $row['Sum_XY'] - $row['Sum_X'] * $row['Sum_Y'])/($row['N'] * $row['Sum_X2'] - $row['Sum_X'] * $row['Sum_X']);

但是由于 unix 时间戳的规模,我得到了像 5.9808374081288E-10 这样的数字。

从中获得百分比增加或减少的最佳方法是什么?或者更具体地说,如何从趋势线的端点获取 Y 值?

4

1 回答 1

1
  1. 想要将您的比例从安培/时间更改为毫安培/时间?乘以 1000
  2. Unix时间戳有问题吗?因为您的时间刻度可以追溯到 1970 年 1 月 1 日。选择一个时间戳作为您的“零”时间,然后从所有其他时间中减去它。
于 2014-03-17T16:42:10.563 回答