我有下表:

+---------------------+-------+
| t                   | price |
+---------------------+-------+
| 2013-04-22 13:23:51 |  9.42 |
+---------------------+-------+


其中t是时间戳记类型,价格是浮动的。

该表很大,大约有50万行。

任务:

我将显示表格和每行过去3天的最低价格。

所以我写了以下内容:

select *,(
  select max(b.price)
  from my_table b
  where b.t<a.t and date(b.t)>=adddate(date(a.t),-3)
) from my_table a;


问题是它永远无法完成我的查询,并且看起来好像挂了……。有什么方法可以加快查询速度吗?还是我做错了什么?

最佳答案

我认为您的adddate函数可能不正确。尝试像这样使用它:ADDDATE(a.t,INTERVAL -3 DAY)

09-17 17:20