我不知道这个概念是否可行 - 可能是在存储过程中?
考虑一个两行表:
`id` (int) | `value` (int) | `date` (datetime)
让我们说这些行存在:
1 | 3 | 2011-02-18
2 | 5 | 2011-02-19
3 | 12 | 2011-02-20
4 | 7 | 2011-02-21
5 | 8 | 2011-02-22
6 | 10 | 2011-02-23
我试图找到趋势,人眼认识到最后三个值每天都在上升是相当明显的:7 - > 8 - > 10.是否可以获得保留在此模式中的行?
我认为存储过程可能能够顺序读取行并找到第一个模式(10> 8),然后继续检查直到它不再匹配该概念: (8> 7),但不是(7> 12)所以它会停止。
任何正确方向的建议都会非常有用。
答案 0 :(得分:1)
set @was:=null;
select id from
(
select
id,
@was as was,
value as now,
(@was:=value)
from the_table order by date
) as trends
where was is not null and now<=was limit 1;