【发布时间】:2012-07-03 10:47:01
【问题描述】:
| time | company | quote |
+---------------------+---------+-------+
| 0000-00-00 00:00:00 | GOOGLE | 40 |
| 2012-07-02 21:28:05 | GOOGLE | 60 |
| 2012-07-02 21:28:51 | SAP | 60 |
| 2012-07-02 21:29:05 | SAP | 20 |
如何在 MySQL 中对这个表做一个滞后以打印引号中的差异,例如:
GOOGLE | 20
SAP | 40
【问题讨论】:
-
每个
company只有两个吗?还是可变的? -
我看到你这里有两家公司,但每家公司只有两行吗?如果是这样,您可以轻松使用
MAX() - MIN()聚合。如果每个company有2行以上,那就更复杂了。 -
我只需要最新的两个时间戳。可能同一家公司有很多条目,但我只需要获取最新的两个时间戳并打印报价差异
-
如果一家公司仅由一行表示,您想在结果中返回该公司吗?如果是这样,应该返回什么差异?
-
在您的示例中,为什么其中一家公司的结果不是负面的?谷歌从 40 上升到 60,而 SAP 从 60 下降到 20。sqlfiddle.com/#!2/b62e1/1/0 或者你只想要绝对运动而不考虑方向(在这种情况下采用
ABS(delta))?
标签: mysql sql sliding-window