0
//This is my query
SELECT bline_id, ROUND(Avg(flow),3) avg  
FROM   (SELECT id, bline_id, flow, date, CASE 
             WHEN @previous IS NULL 
               OR @previous = bline_id THEN @rownum := @rownum + 1 
             ELSE @rownum := 1 
           end rn, 
           @previous := bline_id 
    FROM   blf, 
           (SELECT @rownum := 0, 
                   @previous := NULL) t 
    WHERE bline_id > 0 and bline_id < 31
    ORDER  BY bline_id, 
              date DESC, 
              id) t 
  WHERE  rn < 11
  GROUP  BY bline_id

此查询取最后 10 条记录的平均值。我希望能够将这些结果保存回数据库,并在添加新记录时将它们与下一组 10 个进行比较。

我正在寻找的最终结果是能够判断平均值是否有 + 或 - 2% 的变化。这有意义吗?

4

1 回答 1

0

您可以创建一个包含以下字段的表:

id, bline_id, avg, 时间戳

每次添加记录时,将上面的查询结果插入到此表中。

然后,您可以将此表中的最新记录与之前的记录进行比较。

于 2013-03-28T15:19:40.913 回答