我有下表:
+---------------------+-------+
| 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)